Coverage Report

Created: 2024-05-25 01:30

/src/scnlib/include/scn/scan.h
Line
Count
Source (jump to first uncovered line)
1
// Copyright 2017 Elias Kosunen
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     https://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
//
15
// This file is a part of scnlib:
16
//     https://github.com/eliaskosunen/scnlib
17
18
#pragma once
19
20
// Includes <cassert>, <cstddef>, <cstdint>, and <type_traits>
21
#include <scn/fwd.h>
22
23
#include <array>
24
#include <cstdio>
25
#include <cstring>
26
#include <iterator>
27
#include <limits>
28
#include <optional>
29
#include <string>
30
#include <string_view>
31
#include <tuple>
32
33
/////////////////////////////////////////////////////////////////
34
// <expected> implementation
35
/////////////////////////////////////////////////////////////////
36
37
// The following implementation of expected is based on TartanLlama/expected,
38
// but is heavily modified.
39
//
40
// The original source is here:
41
//     https://github.com/TartanLlama/expected
42
// which is licensed under CC0 (Public Domain).
43
44
namespace scn {
45
SCN_BEGIN_NAMESPACE
46
47
/////////////////////////////////////////////////////////////////
48
// Metaprogramming facilities
49
/////////////////////////////////////////////////////////////////
50
51
namespace detail {
52
53
template <typename T>
54
using integer_type_for_char =
55
    std::conditional_t<std::is_signed_v<T>, int, unsigned>;
56
57
template <typename T, template <typename...> class Templ>
58
struct is_specialization_of_impl : std::false_type {};
59
template <typename... T, template <typename...> class Templ>
60
struct is_specialization_of_impl<Templ<T...>, Templ> : std::true_type {};
61
62
template <typename T, template <typename...> class Templ>
63
using is_specialization_of =
64
    is_specialization_of_impl<remove_cvref_t<T>, Templ>;
65
template <typename T, template <typename...> class Templ>
66
inline constexpr bool is_specialization_of_v =
67
    is_specialization_of<T, Templ>::value;
68
69
// from mp11:
70
71
template <typename T>
72
struct mp_identity {
73
    using type = T;
74
};
75
template <typename T>
76
using mp_identity_t = typename mp_identity<T>::type;
77
78
template <bool B>
79
using mp_bool = std::integral_constant<bool, B>;
80
template <typename T>
81
using mp_to_bool = mp_bool<static_cast<bool>(T::value)>;
82
template <typename T>
83
using mp_not = mp_bool<!T::value>;
84
85
template <bool C, typename T, typename... E>
86
struct mp_if_c_impl;
87
template <typename T, typename... E>
88
struct mp_if_c_impl<true, T, E...> {
89
    using type = T;
90
};
91
template <typename T, typename E>
92
struct mp_if_c_impl<false, T, E> {
93
    using type = E;
94
};
95
96
template <bool C, typename T, typename... E>
97
using mp_if_c = typename mp_if_c_impl<C, T, E...>::type;
98
template <typename C, typename T, typename... E>
99
using mp_if = typename mp_if_c_impl<static_cast<bool>(C::value), T, E...>::type;
100
101
template <template <typename...> class F, typename... T>
102
struct mp_valid_impl {
103
    template <template <typename...> class G, typename = G<T...>>
104
    static std::true_type check(int);
105
    template <template <typename...> class>
106
    static std::false_type check(...);
107
108
    using type = decltype(check<F>(0));
109
};
110
111
template <template <typename...> class F, typename... T>
112
using mp_valid = typename mp_valid_impl<F, T...>::type;
113
template <template <typename...> class F, typename... T>
114
inline constexpr bool mp_valid_v = mp_valid<F, T...>::value;
115
116
struct mp_nonesuch {};
117
template <template <typename...> class F, typename... T>
118
struct mp_defer_impl {
119
    using type = F<T...>;
120
};
121
122
template <template <typename...> class F, typename... T>
123
using mp_defer = mp_if<mp_valid<F, T...>, mp_defer_impl<F, T...>, mp_nonesuch>;
124
125
template <bool C, class T, template <class...> class F, class... U>
126
struct mp_eval_if_c_impl;
127
128
template <class T, template <class...> class F, class... U>
129
struct mp_eval_if_c_impl<true, T, F, U...> {
130
    using type = T;
131
};
132
133
template <class T, template <class...> class F, class... U>
134
struct mp_eval_if_c_impl<false, T, F, U...> : mp_defer<F, U...> {};
135
136
template <bool C, class T, template <class...> class F, class... U>
137
using mp_eval_if_c = typename mp_eval_if_c_impl<C, T, F, U...>::type;
138
template <class C, class T, template <class...> class F, class... U>
139
using mp_eval_if =
140
    typename mp_eval_if_c_impl<static_cast<bool>(C::value), T, F, U...>::type;
141
template <class C, class T, class Q, class... U>
142
using mp_eval_if_q = typename mp_eval_if_c_impl<static_cast<bool>(C::value),
143
                                                T,
144
                                                Q::template fn,
145
                                                U...>::type;
146
147
// mp_eval_if_not
148
template <class C, class T, template <class...> class F, class... U>
149
using mp_eval_if_not = mp_eval_if<mp_not<C>, T, F, U...>;
150
template <class C, class T, class Q, class... U>
151
using mp_eval_if_not_q = mp_eval_if<mp_not<C>, T, Q::template fn, U...>;
152
153
// mp_eval_or
154
template <class T, template <class...> class F, class... U>
155
using mp_eval_or = mp_eval_if_not<mp_valid<F, U...>, T, F, U...>;
156
template <class T, class Q, class... U>
157
using mp_eval_or_q = mp_eval_or<T, Q::template fn, U...>;
158
159
// mp_valid_and_true
160
template <template <class...> class F, class... T>
161
using mp_valid_and_true = mp_eval_or<std::false_type, F, T...>;
162
template <class Q, class... T>
163
using mp_valid_and_true_q = mp_valid_and_true<Q::template fn, T...>;
164
165
// extension
166
template <template <typename...> class F, typename... T>
167
using mp_valid_result =
168
    mp_if<mp_valid<F, T...>, mp_defer_impl<F, T...>, mp_identity<void>>;
169
template <template <typename...> class F, typename... T>
170
using mp_valid_result_t = typename mp_valid_result<F, T...>::type;
171
172
/////////////////////////////////////////////////////////////////
173
// pointer_traits and to_address
174
/////////////////////////////////////////////////////////////////
175
176
template <typename Ptr, typename>
177
struct pointer_traits {};
178
179
template <typename T>
180
struct pointer_traits<T*, void> {
181
    using pointer = T*;
182
    using element_type = T;
183
    using difference_type = std::ptrdiff_t;
184
185
    template <typename U>
186
    using rebind = U*;
187
188
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
189
    static constexpr pointer pointer_to(U& r) noexcept
190
    {
191
        return &r;
192
    }
193
194
    static constexpr pointer to_address(pointer p) noexcept
195
    {
196
        return p;
197
    }
198
};
199
200
template <typename Ptr>
201
using apply_member_difference_type = typename Ptr::difference_type;
202
template <typename Ptr>
203
using get_member_difference_type =
204
    mp_eval_or<std::ptrdiff_t, apply_member_difference_type, Ptr>;
205
206
template <typename Ptr, typename ElementType>
207
struct pointer_traits_generic_base {
208
    using pointer = Ptr;
209
    using element_type = ElementType;
210
211
    using difference_type = get_member_difference_type<Ptr>;
212
    static_assert(std::is_integral_v<difference_type>);
213
214
    // no rebind (TODO?)
215
216
    template <typename P = Ptr>
217
    static auto pointer_to(ElementType& r) -> decltype(P::pointer_to(r))
218
    {
219
        return Ptr::pointer_to(r);
220
    }
221
};
222
223
template <typename It, typename = void>
224
struct wrapped_pointer_iterator;
225
226
#ifdef _GLIBCXX_DEBUG
227
template <typename Elem, typename Container>
228
struct wrapped_pointer_iterator<__gnu_debug::_Safe_iterator<Elem*, Container>> {
229
    static constexpr auto to_address(
230
        const __gnu_debug::_Safe_iterator<Elem*, Container>& it) noexcept
231
    {
232
        return it.base();
233
    }
234
};
235
#endif
236
#if SCN_STDLIB_GLIBCXX
237
template <typename Elem, typename Container>
238
struct wrapped_pointer_iterator<
239
    __gnu_cxx::__normal_iterator<Elem*, Container>> {
240
    static constexpr auto to_address(
241
        const __gnu_cxx::__normal_iterator<Elem*, Container>& it) noexcept
242
    {
243
        return it.base();
244
    }
245
};
246
#endif
247
#if SCN_STDLIB_LIBCPP
248
template <typename Elem>
249
struct wrapped_pointer_iterator<std::__wrap_iter<Elem*>> {
250
    static constexpr auto to_address(const std::__wrap_iter<Elem*>& it) noexcept
251
    {
252
        return it.base();
253
    }
254
};
255
#endif
256
257
template <typename I>
258
using apply_deref = decltype(*SCN_DECLVAL(I&));
259
template <typename I>
260
using apply_incr = decltype(++SCN_DECLVAL(I&));
261
template <typename I>
262
using apply_member_unwrapped = decltype(SCN_DECLVAL(I&)._Unwrapped());
263
template <typename It>
264
struct wrapped_pointer_iterator<
265
    It,
266
    std::enable_if_t<mp_valid_v<apply_deref, It> &&
267
                     mp_valid_v<apply_incr, It> &&
268
                     mp_valid_v<apply_member_unwrapped, It>>> {
269
    static constexpr auto to_address(const It& it) noexcept
270
    {
271
        return it._Unwrapped();
272
    }
273
};
274
275
template <typename I>
276
using apply_member_to_address =
277
    decltype(wrapped_pointer_iterator<I>::to_address(SCN_DECLVAL(const I&)));
278
279
template <typename Iterator>
280
struct pointer_traits<
281
    Iterator,
282
    std::enable_if_t<mp_valid_v<apply_member_to_address, Iterator>>>
283
    : pointer_traits_generic_base<
284
          Iterator,
285
          std::remove_reference_t<decltype(*SCN_DECLVAL(Iterator&))>> {
286
    static constexpr auto to_address(const Iterator& it) noexcept
287
    {
288
        return wrapped_pointer_iterator<Iterator>::to_address(it);
289
    }
290
};
291
292
template <typename It>
293
using apply_ptr_traits_to_address =
294
    decltype(pointer_traits<It>::to_address(SCN_DECLVAL(const It&)));
295
template <typename It>
296
inline constexpr bool can_make_address_from_iterator =
297
    std::is_pointer_v<mp_valid_result_t<apply_ptr_traits_to_address, It>>;
298
299
template <typename T>
300
constexpr T* to_address_impl(T* p, priority_tag<2>) noexcept
301
1.35G
{
302
1.35G
    return p;
303
1.35G
}
char const* scn::v3::detail::to_address_impl<char const>(char const*, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
301
88.9M
{
302
88.9M
    return p;
303
88.9M
}
wchar_t const* scn::v3::detail::to_address_impl<wchar_t const>(wchar_t const*, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
301
1.26G
{
302
1.26G
    return p;
303
1.26G
}
304
template <typename Ptr>
305
constexpr auto to_address_impl(const Ptr& p, priority_tag<1>) noexcept
306
    -> decltype(::scn::detail::pointer_traits<Ptr>::to_address(p))
307
{
308
    return ::scn::detail::pointer_traits<Ptr>::to_address(p);
309
}
310
template <typename Ptr>
311
constexpr auto to_address_impl(const Ptr& p, priority_tag<0>) noexcept
312
    -> decltype(::scn::detail::to_address_impl(p.operator->(),
313
                                               priority_tag<2>{}))
314
{
315
    return ::scn::detail::to_address_impl(p.operator->(), priority_tag<2>{});
316
}
317
318
template <typename Ptr>
319
constexpr auto to_address(Ptr&& p) noexcept
320
    -> decltype(::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{}))
321
1.35G
{
322
1.35G
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
323
1.35G
}
_ZN3scn2v36detail10to_addressIRPKcEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
321
81.4M
{
322
81.4M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
323
81.4M
}
_ZN3scn2v36detail10to_addressIPKcEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
321
7.50M
{
322
7.50M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
323
7.50M
}
_ZN3scn2v36detail10to_addressIRPKwEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
321
1.22G
{
322
1.22G
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
323
1.22G
}
_ZN3scn2v36detail10to_addressIPKwEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
321
36.6M
{
322
36.6M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
323
36.6M
}
324
325
}  // namespace detail
326
327
template <typename E>
328
class SCN_TRIVIAL_ABI unexpected {
329
    static_assert(std::is_destructible_v<E>);
330
331
public:
332
    unexpected() = delete;
333
334
    template <
335
        typename Err = E,
336
        typename = std::enable_if_t<!std::is_same_v<Err, unexpected> &&
337
                                    !std::is_same_v<Err, std::in_place_t> &&
338
                                    std::is_constructible_v<E, Err>>>
339
    explicit constexpr unexpected(Err&& e) noexcept(
340
        std::is_nothrow_constructible_v<E, Err>)
341
        : m_unexpected(std::forward<Err>(e))
342
51.3M
    {
343
51.3M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
51.3M
    }
scn::v3::unexpected<scn::v3::scan_error>::unexpected<scn::v3::scan_error&, void>(scn::v3::scan_error&)
Line
Count
Source
342
11.5M
    {
343
11.5M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
11.5M
    }
scn::v3::unexpected<scn::v3::scan_error>::unexpected<scn::v3::scan_error, void>(scn::v3::scan_error&&)
Line
Count
Source
342
859k
    {
343
859k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
859k
    }
scn::v3::unexpected<scn::v3::impl::eof_error>::unexpected<scn::v3::impl::eof_error, void>(scn::v3::impl::eof_error&&)
Line
Count
Source
342
220k
    {
343
220k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
220k
    }
scn::v3::unexpected<scn::v3::impl::eof_error>::unexpected<scn::v3::impl::eof_error&, void>(scn::v3::impl::eof_error&)
Line
Count
Source
342
165k
    {
343
165k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
165k
    }
scn::v3::unexpected<scn::v3::impl::parse_error>::unexpected<scn::v3::impl::parse_error, void>(scn::v3::impl::parse_error&&)
Line
Count
Source
342
112k
    {
343
112k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
112k
    }
scn::v3::unexpected<scn::v3::impl::parse_error::code>::unexpected<scn::v3::impl::parse_error::code, void>(scn::v3::impl::parse_error::code&&)
Line
Count
Source
342
33.5M
    {
343
33.5M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
33.5M
    }
scn::v3::unexpected<scn::v3::impl::parse_error>::unexpected<scn::v3::impl::parse_error&, void>(scn::v3::impl::parse_error&)
Line
Count
Source
342
4.92M
    {
343
4.92M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
344
4.92M
    }
345
346
    template <typename... Args,
347
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
348
    explicit constexpr unexpected(std::in_place_t, Args&&... args) noexcept(
349
        std::is_nothrow_constructible_v<E, Args...>)
350
        : m_unexpected(std::forward<Args>(args)...)
351
57.0M
    {
352
57.0M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
353
57.0M
    }
scn::v3::unexpected<scn::v3::scan_error>::unexpected<scn::v3::scan_error, void>(std::__1::in_place_t, scn::v3::scan_error&&)
Line
Count
Source
351
17.8M
    {
352
17.8M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
353
17.8M
    }
scn::v3::unexpected<scn::v3::impl::eof_error>::unexpected<scn::v3::impl::eof_error, void>(std::__1::in_place_t, scn::v3::impl::eof_error&&)
Line
Count
Source
351
385k
    {
352
385k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
353
385k
    }
scn::v3::unexpected<scn::v3::impl::parse_error>::unexpected<scn::v3::impl::parse_error, void>(std::__1::in_place_t, scn::v3::impl::parse_error&&)
Line
Count
Source
351
5.25M
    {
352
5.25M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
353
5.25M
    }
scn::v3::unexpected<scn::v3::impl::parse_error>::unexpected<scn::v3::impl::parse_error::code, void>(std::__1::in_place_t, scn::v3::impl::parse_error::code&&)
Line
Count
Source
351
33.5M
    {
352
33.5M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
353
33.5M
    }
354
355
    SCN_NODISCARD constexpr E& error() & noexcept
356
81.1M
    {
357
81.1M
        return m_unexpected;
358
81.1M
    }
scn::v3::unexpected<scn::v3::scan_error>::error() &
Line
Count
Source
356
23.1M
    {
357
23.1M
        return m_unexpected;
358
23.1M
    }
scn::v3::unexpected<scn::v3::impl::eof_error>::error() &
Line
Count
Source
356
770k
    {
357
770k
        return m_unexpected;
358
770k
    }
scn::v3::unexpected<scn::v3::impl::parse_error>::error() &
Line
Count
Source
356
23.6M
    {
357
23.6M
        return m_unexpected;
358
23.6M
    }
scn::v3::unexpected<scn::v3::impl::parse_error::code>::error() &
Line
Count
Source
356
33.5M
    {
357
33.5M
        return m_unexpected;
358
33.5M
    }
359
    SCN_NODISCARD constexpr const E& error() const& noexcept
360
0
    {
361
0
        return m_unexpected;
362
0
    }
Unexecuted instantiation: scn::v3::unexpected<scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::unexpected<scn::v3::impl::parse_error>::error() const &
363
364
    SCN_NODISCARD constexpr E&& error() && noexcept
365
    {
366
        return std::move(m_unexpected);
367
    }
368
    SCN_NODISCARD constexpr const E&& error() const&& noexcept
369
    {
370
        return std::move(m_unexpected);
371
    }
372
373
private:
374
    E m_unexpected;
375
};
376
377
template <typename E>
378
unexpected(E) -> unexpected<E>;
379
380
struct unexpect_t {};
381
inline constexpr unexpect_t unexpect{};
382
383
namespace detail {
384
template <typename T, typename... Args>
385
T* construct_at(T* p, Args&&... args) noexcept(
386
    std::is_nothrow_constructible_v<T, Args...>)
387
37.7M
{
388
37.7M
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
37.7M
        T(std::forward<Args>(args)...);
390
37.7M
}
scn::v3::unexpected<scn::v3::scan_error>* scn::v3::detail::construct_at<scn::v3::unexpected<scn::v3::scan_error>, std::__1::in_place_t const&, scn::v3::scan_error>(scn::v3::unexpected<scn::v3::scan_error>*, std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
387
253k
{
388
253k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
253k
        T(std::forward<Args>(args)...);
390
253k
}
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
149k
{
388
149k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
149k
        T(std::forward<Args>(args)...);
390
149k
}
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v3::detail::construct_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
387
1.09k
{
388
1.09k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
1.09k
        T(std::forward<Args>(args)...);
390
1.09k
}
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
22
{
388
22
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
22
        T(std::forward<Args>(args)...);
390
22
}
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v3::detail::construct_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
387
18.2M
{
388
18.2M
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
18.2M
        T(std::forward<Args>(args)...);
390
18.2M
}
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
311k
{
388
311k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
311k
        T(std::forward<Args>(args)...);
390
311k
}
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
309k
{
388
309k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
309k
        T(std::forward<Args>(args)...);
390
309k
}
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
724
{
388
724
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
724
        T(std::forward<Args>(args)...);
390
724
}
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
724
{
388
724
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
724
        T(std::forward<Args>(args)...);
390
724
}
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v3::detail::construct_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
387
150k
{
388
150k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
150k
        T(std::forward<Args>(args)...);
390
150k
}
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v3::detail::construct_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
387
18.2M
{
388
18.2M
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
389
18.2M
        T(std::forward<Args>(args)...);
390
18.2M
}
391
template <typename T>
392
void destroy_at(T* p) noexcept
393
37.7M
{
394
37.7M
    if constexpr (std::is_array_v<T>) {
395
37.7M
        for (auto& elem : *p) {
396
37.7M
            scn::detail::destroy_at(&elem);
397
37.7M
        }
398
37.7M
    }
399
37.7M
    else {
400
37.7M
        p->~T();
401
37.7M
    }
402
37.7M
}
void scn::v3::detail::destroy_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
149k
{
394
149k
    if constexpr (std::is_array_v<T>) {
395
149k
        for (auto& elem : *p) {
396
149k
            scn::detail::destroy_at(&elem);
397
149k
        }
398
149k
    }
399
149k
    else {
400
149k
        p->~T();
401
149k
    }
402
149k
}
void scn::v3::detail::destroy_at<scn::v3::unexpected<scn::v3::scan_error> >(scn::v3::unexpected<scn::v3::scan_error>*)
Line
Count
Source
393
253k
{
394
253k
    if constexpr (std::is_array_v<T>) {
395
253k
        for (auto& elem : *p) {
396
253k
            scn::detail::destroy_at(&elem);
397
253k
        }
398
253k
    }
399
253k
    else {
400
253k
        p->~T();
401
253k
    }
402
253k
}
void scn::v3::detail::destroy_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
393
1.09k
{
394
1.09k
    if constexpr (std::is_array_v<T>) {
395
1.09k
        for (auto& elem : *p) {
396
1.09k
            scn::detail::destroy_at(&elem);
397
1.09k
        }
398
1.09k
    }
399
1.09k
    else {
400
1.09k
        p->~T();
401
1.09k
    }
402
1.09k
}
void scn::v3::detail::destroy_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
22
{
394
22
    if constexpr (std::is_array_v<T>) {
395
22
        for (auto& elem : *p) {
396
22
            scn::detail::destroy_at(&elem);
397
22
        }
398
22
    }
399
22
    else {
400
22
        p->~T();
401
22
    }
402
22
}
void scn::v3::detail::destroy_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
393
18.2M
{
394
18.2M
    if constexpr (std::is_array_v<T>) {
395
18.2M
        for (auto& elem : *p) {
396
18.2M
            scn::detail::destroy_at(&elem);
397
18.2M
        }
398
18.2M
    }
399
18.2M
    else {
400
18.2M
        p->~T();
401
18.2M
    }
402
18.2M
}
Unexecuted instantiation: void scn::v3::detail::destroy_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
void scn::v3::detail::destroy_at<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
311k
{
394
311k
    if constexpr (std::is_array_v<T>) {
395
311k
        for (auto& elem : *p) {
396
311k
            scn::detail::destroy_at(&elem);
397
311k
        }
398
311k
    }
399
311k
    else {
400
311k
        p->~T();
401
311k
    }
402
311k
}
Unexecuted instantiation: void scn::v3::detail::destroy_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
void scn::v3::detail::destroy_at<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
309k
{
394
309k
    if constexpr (std::is_array_v<T>) {
395
309k
        for (auto& elem : *p) {
396
309k
            scn::detail::destroy_at(&elem);
397
309k
        }
398
309k
    }
399
309k
    else {
400
309k
        p->~T();
401
309k
    }
402
309k
}
Unexecuted instantiation: void scn::v3::detail::destroy_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
void scn::v3::detail::destroy_at<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
724
{
394
724
    if constexpr (std::is_array_v<T>) {
395
724
        for (auto& elem : *p) {
396
724
            scn::detail::destroy_at(&elem);
397
724
        }
398
724
    }
399
724
    else {
400
724
        p->~T();
401
724
    }
402
724
}
Unexecuted instantiation: void scn::v3::detail::destroy_at<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
void scn::v3::detail::destroy_at<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
724
{
394
724
    if constexpr (std::is_array_v<T>) {
395
724
        for (auto& elem : *p) {
396
724
            scn::detail::destroy_at(&elem);
397
724
        }
398
724
    }
399
724
    else {
400
724
        p->~T();
401
724
    }
402
724
}
void scn::v3::detail::destroy_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
393
150k
{
394
150k
    if constexpr (std::is_array_v<T>) {
395
150k
        for (auto& elem : *p) {
396
150k
            scn::detail::destroy_at(&elem);
397
150k
        }
398
150k
    }
399
150k
    else {
400
150k
        p->~T();
401
150k
    }
402
150k
}
void scn::v3::detail::destroy_at<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
393
18.2M
{
394
18.2M
    if constexpr (std::is_array_v<T>) {
395
18.2M
        for (auto& elem : *p) {
396
18.2M
            scn::detail::destroy_at(&elem);
397
18.2M
        }
398
18.2M
    }
399
18.2M
    else {
400
18.2M
        p->~T();
401
18.2M
    }
402
18.2M
}
403
404
struct deferred_init_tag_t {};
405
static constexpr deferred_init_tag_t deferred_init_tag{};
406
407
template <typename T,
408
          typename E,
409
          bool IsTriviallyDestructible = std::is_trivially_destructible_v<T> &&
410
                                         std::is_trivially_destructible_v<E>>
411
struct expected_storage_base;
412
413
template <typename T, typename E>
414
struct SCN_TRIVIAL_ABI expected_storage_base<T, E, true> {
415
    constexpr expected_storage_base() noexcept(
416
        std::is_nothrow_default_constructible_v<T>)
417
        : m_value(T{}), m_has_value(true)
418
    {
419
    }
420
421
    constexpr explicit expected_storage_base(deferred_init_tag_t) noexcept
422
        : m_deferred_init(), m_has_value(false)
423
    {
424
    }
425
426
    template <typename... Args,
427
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
428
    constexpr explicit expected_storage_base(
429
        std::in_place_t,
430
        Args&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>)
431
        : m_value(std::forward<Args>(args)...), m_has_value(true)
432
529M
    {
433
529M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void>(std::__1::in_place_t, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
432
4.39M
    {
433
4.39M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>&&)
Line
Count
Source
432
204
    {
433
204
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>&&)
Line
Count
Source
432
382k
    {
433
382k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>&&)
Line
Count
Source
432
324k
    {
433
324k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>&&)
Line
Count
Source
432
711k
    {
433
711k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>&&)
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Line
Count
Source
432
149k
    {
433
149k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
432
36.6M
    {
433
36.6M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>&&)
Line
Count
Source
432
12
    {
433
12
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>&&)
Line
Count
Source
432
711
    {
433
711
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>&&)
Line
Count
Source
432
564
    {
433
564
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>&&)
Line
Count
Source
432
8.43k
    {
433
8.43k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>&&)
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Line
Count
Source
432
18.2M
    {
433
18.2M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
432
14.3M
    {
433
14.3M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
432
37.2M
    {
433
37.2M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
Line
Count
Source
432
21.3M
    {
433
21.3M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Line
Count
Source
432
74.4M
    {
433
74.4M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
432
20.8M
    {
433
20.8M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>&&)
Line
Count
Source
432
6.33M
    {
433
6.33M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator&, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<char>::forward_iterator&)
Line
Count
Source
432
1.97M
    {
433
1.97M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
4.51M
    {
433
4.51M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
432
11.7M
    {
433
11.7M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>&&)
Line
Count
Source
432
2.16M
    {
433
2.16M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>&&)
Line
Count
Source
432
2.16M
    {
433
2.16M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator&, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<char>::forward_iterator&)
Line
Count
Source
432
3.21M
    {
433
3.21M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
Line
Count
Source
432
10.6M
    {
433
10.6M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
432
15.8k
    {
433
15.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
432
8.42k
    {
433
8.42k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<char const*, long>, void>(std::__1::in_place_t, std::__1::pair<char const*, long>&&)
Line
Count
Source
432
6.45M
    {
433
6.45M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
2.95k
    {
433
2.95k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
432
4.10k
    {
433
4.10k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Line
Count
Source
432
2.20k
    {
433
2.20k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Line
Count
Source
432
2.20k
    {
433
2.20k
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::expected_storage_base<char const*&, void>(std::__1::in_place_t, char const*&)
Line
Count
Source
432
1.57M
    {
433
1.57M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<char const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
4.40M
    {
433
4.40M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
Line
Count
Source
432
946k
    {
433
946k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<char const*>&&)
Line
Count
Source
432
2.16M
    {
433
2.16M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<char const*>&&)
Line
Count
Source
432
2.16M
    {
433
2.16M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::expected_storage_base<char const*&, void>(std::__1::in_place_t, char const*&)
Line
Count
Source
432
3.25M
    {
433
3.25M
    }
scn::v3::detail::expected_storage_base<long, scn::v3::scan_error, true>::expected_storage_base<long, void>(std::__1::in_place_t, long&&)
Line
Count
Source
432
71.7M
    {
433
71.7M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
2.13M
    {
433
2.13M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
744
    {
433
744
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<char const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
2.17M
    {
433
2.17M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&)
scn::v3::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error, true>::expected_storage_base<std::__1::regex_constants::syntax_option_type, void>(std::__1::in_place_t, std::__1::regex_constants::syntax_option_type&&)
Line
Count
Source
432
17.3k
    {
433
17.3k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
432
794
    {
433
794
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&)
Line
Count
Source
432
528
    {
433
528
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::expected_storage_base<char const* const&, void>(std::__1::in_place_t, char const* const&)
Line
Count
Source
432
8.15k
    {
433
8.15k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
432
20.4M
    {
433
20.4M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>&&)
Line
Count
Source
432
15.1M
    {
433
15.1M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Line
Count
Source
432
4.81k
    {
433
4.81k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
588k
    {
433
588k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
432
836k
    {
433
836k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Line
Count
Source
432
351k
    {
433
351k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Line
Count
Source
432
351k
    {
433
351k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Line
Count
Source
432
7.33M
    {
433
7.33M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Line
Count
Source
432
38.7M
    {
433
38.7M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, long>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, long>&&)
Line
Count
Source
432
29.7M
    {
433
29.7M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::expected_storage_base<wchar_t const*&, void>(std::__1::in_place_t, wchar_t const*&)
Line
Count
Source
432
3.84k
    {
433
3.84k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
591k
    {
433
591k
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Line
Count
Source
432
822k
    {
433
822k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<wchar_t const*>&&)
Line
Count
Source
432
354k
    {
433
354k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, void>(std::__1::in_place_t, scn::v3::impl::parse_integer_prefix_result<wchar_t const*>&&)
Line
Count
Source
432
354k
    {
433
354k
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::expected_storage_base<wchar_t const*&, void>(std::__1::in_place_t, wchar_t const*&)
Line
Count
Source
432
14.6M
    {
433
14.6M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
234k
    {
433
234k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
432
236k
    {
433
236k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&)
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, void>(std::__1::in_place_t, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
432
30
    {
433
30
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&, void>(std::__1::in_place_t, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&)
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::expected_storage_base<wchar_t const* const&, void>(std::__1::in_place_t, wchar_t const* const&)
Line
Count
Source
432
60
    {
433
60
    }
scn::v3::detail::expected_storage_base<long, scn::v3::scan_error, true>::expected_storage_base<int, void>(std::__1::in_place_t, int&&)
Line
Count
Source
432
235k
    {
433
235k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t, scn::v3::scan_error, true>::expected_storage_base<wchar_t, void>(std::__1::in_place_t, wchar_t&&)
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>&&)
Line
Count
Source
432
296k
    {
433
296k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>&&)
Line
Count
Source
432
283k
    {
433
283k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>&&)
Line
Count
Source
432
390k
    {
433
390k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>&&)
Line
Count
Source
432
328k
    {
433
328k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, void>(std::__1::in_place_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&&)
Line
Count
Source
432
4.21M
    {
433
4.21M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>&&)
Line
Count
Source
432
298k
    {
433
298k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>&&)
Line
Count
Source
432
285k
    {
433
285k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>&&)
Line
Count
Source
432
383k
    {
433
383k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>&&)
Line
Count
Source
432
326k
    {
433
326k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>&&)
Line
Count
Source
432
390k
    {
433
390k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>&&)
Line
Count
Source
432
330k
    {
433
330k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>&&)
Line
Count
Source
432
595
    {
433
595
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>&&)
Line
Count
Source
432
500
    {
433
500
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>&&)
Line
Count
Source
432
864
    {
433
864
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>&&)
Line
Count
Source
432
694
    {
433
694
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, void>(std::__1::in_place_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&&)
Line
Count
Source
432
18.3M
    {
433
18.3M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>&&)
Line
Count
Source
432
595
    {
433
595
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>&&)
Line
Count
Source
432
500
    {
433
500
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>&&)
Line
Count
Source
432
711
    {
433
711
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>&&)
Line
Count
Source
432
564
    {
433
564
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>&&)
Line
Count
Source
432
864
    {
433
864
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>&&)
Line
Count
Source
432
694
    {
433
694
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>&&)
Line
Count
Source
432
654k
    {
433
654k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>&&)
Line
Count
Source
432
722k
    {
433
722k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>&&)
Line
Count
Source
432
643k
    {
433
643k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>&&)
Line
Count
Source
432
700k
    {
433
700k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>&&)
Line
Count
Source
432
709k
    {
433
709k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>&&)
Line
Count
Source
432
8.36k
    {
433
8.36k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>&&)
Line
Count
Source
432
8.54k
    {
433
8.54k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>&&)
Line
Count
Source
432
8.33k
    {
433
8.33k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>&&)
Line
Count
Source
432
8.40k
    {
433
8.40k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>&&)
Line
Count
Source
432
8.52k
    {
433
8.52k
    }
434
435
    template <typename... Args,
436
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
437
    constexpr explicit expected_storage_base(
438
        unexpect_t,
439
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
440
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
441
          m_has_value(false)
442
56.7M
    {
443
56.7M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
498k
    {
443
498k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
14.4k
    {
443
14.4k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
55.5k
    {
443
55.5k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
55.5k
    {
443
55.5k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
49.9k
    {
443
49.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
14.6k
    {
443
14.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
14.6k
    {
443
14.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
23.1k
    {
443
23.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
1.00M
    {
443
1.00M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
29.3k
    {
443
29.3k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
111k
    {
443
111k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
111k
    {
443
111k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
99.9k
    {
443
99.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
29.3k
    {
443
29.3k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
29.3k
    {
443
29.3k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
48.3k
    {
443
48.3k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
2.76M
    {
443
2.76M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
1.98M
    {
443
1.98M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
3.02M
    {
443
3.02M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
1.80M
    {
443
1.80M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
153k
    {
443
153k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
41.1k
    {
443
41.1k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
442
2.26M
    {
443
2.26M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Line
Count
Source
442
16.6M
    {
443
16.6M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
491
    {
443
491
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
60.6k
    {
443
60.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
350
    {
443
350
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
12.5k
    {
443
12.5k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
37.9k
    {
443
37.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
442
1.30k
    {
443
1.30k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Line
Count
Source
442
11.5k
    {
443
11.5k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
442
2.21M
    {
443
2.21M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Line
Count
Source
442
12.9M
    {
443
12.9M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
156
    {
443
156
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<long, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
2.91M
    {
443
2.91M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
83.4k
    {
443
83.4k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
5.04k
    {
443
5.04k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
442
384k
    {
443
384k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Line
Count
Source
442
2.16M
    {
443
2.16M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Line
Count
Source
442
87.2k
    {
443
87.2k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
6.66k
    {
443
6.66k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
442
384k
    {
443
384k
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::expected_storage_base<scn::v3::impl::parse_error::code, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error::code&&)
Line
Count
Source
442
1.71M
    {
443
1.71M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::expected_storage_base<scn::v3::impl::eof_error, void>(scn::v3::unexpect_t, scn::v3::impl::eof_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
360k
    {
443
360k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
40.8k
    {
443
40.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
721k
    {
443
721k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
81.7k
    {
443
81.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
35.2k
    {
443
35.2k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
35.2k
    {
443
35.2k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
35.2k
    {
443
35.2k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
35.2k
    {
443
35.2k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
35.2k
    {
443
35.2k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
70.5k
    {
443
70.5k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
70.5k
    {
443
70.5k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
70.5k
    {
443
70.5k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
70.5k
    {
443
70.5k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error, true>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
442
70.5k
    {
443
70.5k
    }
444
445
    constexpr T& get_value() & noexcept
446
537M
    {
447
537M
        return m_value;
448
537M
    }
scn::v3::detail::expected_storage_base<long, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
94.4M
    {
447
94.4M
        return m_value;
448
94.4M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
4.39M
    {
447
4.39M
        return m_value;
448
4.39M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
36.6M
    {
447
36.6M
        return m_value;
448
36.6M
    }
scn::v3::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
17.3k
    {
447
17.3k
        return m_value;
448
17.3k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
13.6M
    {
447
13.6M
        return m_value;
448
13.6M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
19.6M
    {
447
19.6M
        return m_value;
448
19.6M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
22.5M
    {
447
22.5M
        return m_value;
448
22.5M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
88.9M
    {
447
88.9M
        return m_value;
448
88.9M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
5.97M
    {
447
5.97M
        return m_value;
448
5.97M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
6.33M
    {
447
6.33M
        return m_value;
448
6.33M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::get_value() &
Line
Count
Source
446
15.9M
    {
447
15.9M
        return m_value;
448
15.9M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
4.51M
    {
447
4.51M
        return m_value;
448
4.51M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
2.16M
    {
447
2.16M
        return m_value;
448
2.16M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
2.16M
    {
447
2.16M
        return m_value;
448
2.16M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
15.4M
    {
447
15.4M
        return m_value;
448
15.4M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
11.4k
    {
447
11.4k
        return m_value;
448
11.4k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
6.45M
    {
447
6.45M
        return m_value;
448
6.45M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::get_value() &
Line
Count
Source
446
4.10k
    {
447
4.10k
        return m_value;
448
4.10k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
2.95k
    {
447
2.95k
        return m_value;
448
2.95k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
2.20k
    {
447
2.20k
        return m_value;
448
2.20k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
2.20k
    {
447
2.20k
        return m_value;
448
2.20k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
8.95k
    {
447
8.95k
        return m_value;
448
8.95k
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::get_value() &
Line
Count
Source
446
3.13M
    {
447
3.13M
        return m_value;
448
3.13M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
4.40M
    {
447
4.40M
        return m_value;
448
4.40M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
2.16M
    {
447
2.16M
        return m_value;
448
2.16M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
2.16M
    {
447
2.16M
        return m_value;
448
2.16M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
2.13M
    {
447
2.13M
        return m_value;
448
2.13M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
744
    {
447
744
        return m_value;
448
744
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
2.17M
    {
447
2.17M
        return m_value;
448
2.17M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
15.1M
    {
447
15.1M
        return m_value;
448
15.1M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::get_value() &
Line
Count
Source
446
868k
    {
447
868k
        return m_value;
448
868k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
588k
    {
447
588k
        return m_value;
448
588k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
351k
    {
447
351k
        return m_value;
448
351k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
351k
    {
447
351k
        return m_value;
448
351k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
44.5M
    {
447
44.5M
        return m_value;
448
44.5M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
38.0M
    {
447
38.0M
        return m_value;
448
38.0M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
29.7M
    {
447
29.7M
        return m_value;
448
29.7M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::get_value() &
Line
Count
Source
446
836k
    {
447
836k
        return m_value;
448
836k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
591k
    {
447
591k
        return m_value;
448
591k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::get_value() &
Line
Count
Source
446
354k
    {
447
354k
        return m_value;
448
354k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
354k
    {
447
354k
        return m_value;
448
354k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
234k
    {
447
234k
        return m_value;
448
234k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
236k
    {
447
236k
        return m_value;
448
236k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
296k
    {
447
296k
        return m_value;
448
296k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
283k
    {
447
283k
        return m_value;
448
283k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
382k
    {
447
382k
        return m_value;
448
382k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
324k
    {
447
324k
        return m_value;
448
324k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
390k
    {
447
390k
        return m_value;
448
390k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
328k
    {
447
328k
        return m_value;
448
328k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
4.21M
    {
447
4.21M
        return m_value;
448
4.21M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
298k
    {
447
298k
        return m_value;
448
298k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
285k
    {
447
285k
        return m_value;
448
285k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
383k
    {
447
383k
        return m_value;
448
383k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
326k
    {
447
326k
        return m_value;
448
326k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
390k
    {
447
390k
        return m_value;
448
390k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
330k
    {
447
330k
        return m_value;
448
330k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
595
    {
447
595
        return m_value;
448
595
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
500
    {
447
500
        return m_value;
448
500
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
711
    {
447
711
        return m_value;
448
711
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
564
    {
447
564
        return m_value;
448
564
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
864
    {
447
864
        return m_value;
448
864
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
694
    {
447
694
        return m_value;
448
694
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
18.3M
    {
447
18.3M
        return m_value;
448
18.3M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
595
    {
447
595
        return m_value;
448
595
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
500
    {
447
500
        return m_value;
448
500
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
711
    {
447
711
        return m_value;
448
711
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
564
    {
447
564
        return m_value;
448
564
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
864
    {
447
864
        return m_value;
448
864
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
694
    {
447
694
        return m_value;
448
694
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
148k
    {
447
148k
        return m_value;
448
148k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
18.2M
    {
447
18.2M
        return m_value;
448
18.2M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
654k
    {
447
654k
        return m_value;
448
654k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
711k
    {
447
711k
        return m_value;
448
711k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
722k
    {
447
722k
        return m_value;
448
722k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
643k
    {
447
643k
        return m_value;
448
643k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
700k
    {
447
700k
        return m_value;
448
700k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
709k
    {
447
709k
        return m_value;
448
709k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
8.36k
    {
447
8.36k
        return m_value;
448
8.36k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
8.43k
    {
447
8.43k
        return m_value;
448
8.43k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
8.54k
    {
447
8.54k
        return m_value;
448
8.54k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
8.33k
    {
447
8.33k
        return m_value;
448
8.33k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
8.40k
    {
447
8.40k
        return m_value;
448
8.40k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error, true>::get_value() &
Line
Count
Source
446
8.52k
    {
447
8.52k
        return m_value;
448
8.52k
    }
449
    constexpr const T& get_value() const& noexcept
450
0
    {
451
0
        return m_value;
452
0
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::get_value() const &
453
    constexpr T&& get_value() && noexcept
454
    {
455
        return std::move(m_value);
456
    }
457
    constexpr const T&& get_value() const&& noexcept
458
    {
459
        return std::move(m_value);
460
    }
461
462
    constexpr unexpected<E>& get_unexpected() & noexcept
463
29.6M
    {
464
29.6M
        return m_unexpected;
465
29.6M
    }
scn::v3::detail::expected_storage_base<long, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
2.91M
    {
464
2.91M
        return m_unexpected;
465
2.91M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
498k
    {
464
498k
        return m_unexpected;
465
498k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
1.00M
    {
464
1.00M
        return m_unexpected;
465
1.00M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
463
153k
    {
464
153k
        return m_unexpected;
465
153k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
463
83.4k
    {
464
83.4k
        return m_unexpected;
465
83.4k
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
977k
    {
464
977k
        return m_unexpected;
465
977k
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
1.56M
    {
464
1.56M
        return m_unexpected;
465
1.56M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
463
60.5k
    {
464
60.5k
        return m_unexpected;
465
60.5k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
41.1k
    {
464
41.1k
        return m_unexpected;
465
41.1k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
463
7.97M
    {
464
7.97M
        return m_unexpected;
465
7.97M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
748k
    {
464
748k
        return m_unexpected;
465
748k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
463
278
    {
464
278
        return m_unexpected;
465
278
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
37.9k
    {
464
37.9k
        return m_unexpected;
465
37.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
463
7.63k
    {
464
7.63k
        return m_unexpected;
465
7.63k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
11.7k
    {
464
11.7k
        return m_unexpected;
465
11.7k
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
463
7.78M
    {
464
7.78M
        return m_unexpected;
465
7.78M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
5.04k
    {
464
5.04k
        return m_unexpected;
465
5.04k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
463
1.63M
    {
464
1.63M
        return m_unexpected;
465
1.63M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
1.74M
    {
464
1.74M
        return m_unexpected;
465
1.74M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
463
87.2k
    {
464
87.2k
        return m_unexpected;
465
87.2k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
6.66k
    {
464
6.66k
        return m_unexpected;
465
6.66k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
463
1.23M
    {
464
1.23M
        return m_unexpected;
465
1.23M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::get_unexpected() &
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
360k
    {
464
360k
        return m_unexpected;
465
360k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error, true>::get_unexpected() &
Line
Count
Source
463
721k
    {
464
721k
        return m_unexpected;
465
721k
    }
466
    constexpr const unexpected<E>& get_unexpected() const& noexcept
467
0
    {
468
0
        return m_unexpected;
469
0
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::get_unexpected() const &
470
    constexpr unexpected<E>&& get_unexpected() && noexcept
471
    {
472
        return std::move(m_unexpected);
473
    }
474
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
475
    {
476
        return std::move(m_unexpected);
477
    }
478
479
    SCN_NODISCARD constexpr bool has_value() const noexcept
480
1.19G
    {
481
1.19G
        return m_has_value;
482
1.19G
    }
scn::v3::detail::expected_storage_base<long, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
195M
    {
481
195M
        return m_has_value;
482
195M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
9.78M
    {
481
9.78M
        return m_has_value;
482
9.78M
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
75.2M
    {
481
75.2M
        return m_has_value;
482
75.2M
    }
scn::v3::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
34.7k
    {
481
34.7k
        return m_has_value;
482
34.7k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<wchar_t, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
34.8M
    {
481
34.8M
        return m_has_value;
482
34.8M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
40.2M
    {
481
40.2M
        return m_has_value;
482
40.2M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
53.2M
    {
481
53.2M
        return m_has_value;
482
53.2M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
181M
    {
481
181M
        return m_has_value;
482
181M
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
16.7M
    {
481
16.7M
        return m_has_value;
482
16.7M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
12.7M
    {
481
12.7M
        return m_has_value;
482
12.7M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::has_value() const
Line
Count
Source
480
60.8M
    {
481
60.8M
        return m_has_value;
482
60.8M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
9.03M
    {
481
9.03M
        return m_has_value;
482
9.03M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
4.33M
    {
481
4.33M
        return m_has_value;
482
4.33M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
4.33M
    {
481
4.33M
        return m_has_value;
482
4.33M
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
38.6M
    {
481
38.6M
        return m_has_value;
482
38.6M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
27.9k
    {
481
27.9k
        return m_has_value;
482
27.9k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
12.9M
    {
481
12.9M
        return m_has_value;
482
12.9M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::has_value() const
Line
Count
Source
480
30.8k
    {
481
30.8k
        return m_has_value;
482
30.8k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
5.90k
    {
481
5.90k
        return m_has_value;
482
5.90k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
4.41k
    {
481
4.41k
        return m_has_value;
482
4.41k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
4.41k
    {
481
4.41k
        return m_has_value;
482
4.41k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
42.9k
    {
481
42.9k
        return m_has_value;
482
42.9k
    }
scn::v3::detail::expected_storage_base<char const*, scn::v3::impl::parse_error, true>::has_value() const
Line
Count
Source
480
32.8M
    {
481
32.8M
        return m_has_value;
482
32.8M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
8.81M
    {
481
8.81M
        return m_has_value;
482
8.81M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
4.33M
    {
481
4.33M
        return m_has_value;
482
4.33M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
4.33M
    {
481
4.33M
        return m_has_value;
482
4.33M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
4.26M
    {
481
4.26M
        return m_has_value;
482
4.26M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.48k
    {
481
1.48k
        return m_has_value;
482
1.48k
    }
scn::v3::detail::expected_storage_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
4.34M
    {
481
4.34M
        return m_has_value;
482
4.34M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
30.2M
    {
481
30.2M
        return m_has_value;
482
30.2M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::has_value() const
Line
Count
Source
480
6.57M
    {
481
6.57M
        return m_has_value;
482
6.57M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
1.17M
    {
481
1.17M
        return m_has_value;
482
1.17M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
703k
    {
481
703k
        return m_has_value;
482
703k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
703k
    {
481
703k
        return m_has_value;
482
703k
    }
scn::v3::detail::expected_storage_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
93.1M
    {
481
93.1M
        return m_has_value;
482
93.1M
    }
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
76.8M
    {
481
76.8M
        return m_has_value;
482
76.8M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
59.5M
    {
481
59.5M
        return m_has_value;
482
59.5M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v3::detail::expected_storage_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<wchar_t const*, scn::v3::impl::parse_error, true>::has_value() const
Line
Count
Source
480
5.55M
    {
481
5.55M
        return m_has_value;
482
5.55M
    }
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
1.18M
    {
481
1.18M
        return m_has_value;
482
1.18M
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::has_value() const
Line
Count
Source
480
709k
    {
481
709k
        return m_has_value;
482
709k
    }
scn::v3::detail::expected_storage_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
709k
    {
481
709k
        return m_has_value;
482
709k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
469k
    {
481
469k
        return m_has_value;
482
469k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
472k
    {
481
472k
        return m_has_value;
482
472k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
634k
    {
481
634k
        return m_has_value;
482
634k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
607k
    {
481
607k
        return m_has_value;
482
607k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
806k
    {
481
806k
        return m_has_value;
482
806k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
690k
    {
481
690k
        return m_has_value;
482
690k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
822k
    {
481
822k
        return m_has_value;
482
822k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
698k
    {
481
698k
        return m_has_value;
482
698k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
9.15M
    {
481
9.15M
        return m_has_value;
482
9.15M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
638k
    {
481
638k
        return m_has_value;
482
638k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
610k
    {
481
610k
        return m_has_value;
482
610k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
807k
    {
481
807k
        return m_has_value;
482
807k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
693k
    {
481
693k
        return m_has_value;
482
693k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
822k
    {
481
822k
        return m_has_value;
482
822k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
702k
    {
481
702k
        return m_has_value;
482
702k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
82.9k
    {
481
82.9k
        return m_has_value;
482
82.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
82.7k
    {
481
82.7k
        return m_has_value;
482
82.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
83.1k
    {
481
83.1k
        return m_has_value;
482
83.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
82.8k
    {
481
82.8k
        return m_has_value;
482
82.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
83.4k
    {
481
83.4k
        return m_has_value;
482
83.4k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
83.1k
    {
481
83.1k
        return m_has_value;
482
83.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
38.0M
    {
481
38.0M
        return m_has_value;
482
38.0M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
82.9k
    {
481
82.9k
        return m_has_value;
482
82.9k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
82.7k
    {
481
82.7k
        return m_has_value;
482
82.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
83.1k
    {
481
83.1k
        return m_has_value;
482
83.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
82.8k
    {
481
82.8k
        return m_has_value;
482
82.8k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
83.4k
    {
481
83.4k
        return m_has_value;
482
83.4k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
83.1k
    {
481
83.1k
        return m_has_value;
482
83.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
306k
    {
481
306k
        return m_has_value;
482
306k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
36.6M
    {
481
36.6M
        return m_has_value;
482
36.6M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.34M
    {
481
1.34M
        return m_has_value;
482
1.34M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.45M
    {
481
1.45M
        return m_has_value;
482
1.45M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.47M
    {
481
1.47M
        return m_has_value;
482
1.47M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.32M
    {
481
1.32M
        return m_has_value;
482
1.32M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.43M
    {
481
1.43M
        return m_has_value;
482
1.43M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
1.45M
    {
481
1.45M
        return m_has_value;
482
1.45M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
87.2k
    {
481
87.2k
        return m_has_value;
482
87.2k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
87.4k
    {
481
87.4k
        return m_has_value;
482
87.4k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
87.6k
    {
481
87.6k
        return m_has_value;
482
87.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
87.2k
    {
481
87.2k
        return m_has_value;
482
87.2k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
87.3k
    {
481
87.3k
        return m_has_value;
482
87.3k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error, true>::has_value() const
Line
Count
Source
480
87.6k
    {
481
87.6k
        return m_has_value;
482
87.6k
    }
483
484
    template <typename... Args>
485
    void construct(Args&&... args) noexcept(
486
        std::is_nothrow_constructible_v<T, Args...>)
487
    {
488
        scn::detail::construct_at(&get_value(), std::forward<Args>(args)...);
489
        m_has_value = true;
490
    }
491
    template <typename... Args>
492
    void construct_unexpected(Args&&... args) noexcept(
493
        std::is_nothrow_constructible_v<E, Args...>)
494
    {
495
        scn::detail::construct_at(&get_unexpected(),
496
                                  std::forward<Args>(args)...);
497
        m_has_value = false;
498
    }
499
500
    // No-op, because T and E are trivially destructible
501
    static constexpr void destroy_value() noexcept {}
502
    static constexpr void destroy_unexpected() noexcept {}
503
504
private:
505
    union {
506
        T m_value;
507
        unexpected<E> m_unexpected;
508
        char m_deferred_init;
509
    };
510
    bool m_has_value;
511
};
512
513
template <typename E>
514
struct SCN_TRIVIAL_ABI expected_storage_base<void, E, true> {
515
    constexpr expected_storage_base() noexcept : m_has_value(true) {}
516
517
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
518
        : m_deferred_init(), m_has_value(false)
519
    {
520
    }
521
522
    explicit constexpr expected_storage_base(std::in_place_t) noexcept
523
        : m_has_value(true)
524
    {
525
    }
526
527
    template <typename... Args,
528
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
529
    explicit constexpr expected_storage_base(
530
        unexpect_t,
531
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
532
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
533
          m_has_value(false)
534
    {
535
    }
536
537
    constexpr unexpected<E>& get_unexpected() & noexcept
538
    {
539
        return m_unexpected;
540
    }
541
    constexpr const unexpected<E>& get_unexpected() const& noexcept
542
    {
543
        return m_unexpected;
544
    }
545
    constexpr unexpected<E>&& get_unexpected() && noexcept
546
    {
547
        return std::move(m_unexpected);
548
    }
549
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
550
    {
551
        return std::move(m_unexpected);
552
    }
553
554
    SCN_NODISCARD constexpr bool has_value() const noexcept
555
    {
556
        return m_has_value;
557
    }
558
559
    template <typename... Args>
560
    void construct(Args&&...) noexcept
561
    {
562
        m_has_value = true;
563
    }
564
    template <typename... Args>
565
    void construct_unexpected(Args&&... args) noexcept(
566
        std::is_nothrow_constructible_v<E, Args...>)
567
    {
568
        scn::detail::construct_at(&get_unexpected(),
569
                                  std::forward<Args>(args)...);
570
        m_has_value = false;
571
    }
572
573
    static constexpr void destroy_value() noexcept {}
574
    static constexpr void destroy_unexpected() noexcept {}
575
576
private:
577
    union {
578
        unexpected<E> m_unexpected;
579
        char m_deferred_init;
580
    };
581
    bool m_has_value;
582
};
583
584
/**
585
 * Implementation of `std::max` without including `<algorithm>`
586
 */
587
template <typename T>
588
constexpr T max(T a, T b) noexcept
589
0
{
590
0
    return (a < b) ? b : a;
591
0
}
592
593
template <typename T, typename E>
594
struct SCN_TRIVIAL_ABI expected_storage_base<T, E, false> {
595
    constexpr expected_storage_base() noexcept : m_has_value(true)
596
    {
597
        construct();
598
    }
599
600
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
601
        : m_has_value(false)
602
    {
603
    }
604
605
    template <typename... Args,
606
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
607
    explicit constexpr expected_storage_base(
608
        std::in_place_t,
609
        Args&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>)
610
        : m_has_value(true)
611
37.5M
    {
612
37.5M
        construct(std::forward<Args>(args)...);
613
37.5M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
149k
    {
612
149k
        construct(std::forward<Args>(args)...);
613
149k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
611
1.09k
    {
612
1.09k
        construct(std::forward<Args>(args)...);
613
1.09k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
22
    {
612
22
        construct(std::forward<Args>(args)...);
613
22
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
611
18.2M
    {
612
18.2M
        construct(std::forward<Args>(args)...);
613
18.2M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
311k
    {
612
311k
        construct(std::forward<Args>(args)...);
613
311k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
309k
    {
612
309k
        construct(std::forward<Args>(args)...);
613
309k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
724
    {
612
724
        construct(std::forward<Args>(args)...);
613
724
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
724
    {
612
724
        construct(std::forward<Args>(args)...);
613
724
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
611
150k
    {
612
150k
        construct(std::forward<Args>(args)...);
613
150k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, void>(std::__1::in_place_t, scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
611
18.2M
    {
612
18.2M
        construct(std::forward<Args>(args)...);
613
18.2M
    }
614
615
    template <typename... Args,
616
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
617
    explicit constexpr expected_storage_base(
618
        unexpect_t,
619
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
620
        : m_has_value(false)
621
253k
    {
622
253k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
253k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
23.1k
    {
622
23.1k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
23.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
13.6k
    {
622
13.6k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
13.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
29.3k
    {
622
29.3k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
29.3k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
48.3k
    {
622
48.3k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
48.3k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
8.86k
    {
622
8.86k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
8.86k
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
28
    {
622
28
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
28
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
9.28k
    {
622
9.28k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
9.28k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
46.0k
    {
622
46.0k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
46.0k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
46.0k
    {
622
46.0k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
46.0k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
9.50k
    {
622
9.50k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
9.50k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::expected_storage_base<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
621
19.0k
    {
622
19.0k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
623
19.0k
    }
624
625
    ~expected_storage_base()
626
37.7M
    {
627
37.7M
        if (has_value()) {
628
37.5M
            destroy_value();
629
37.5M
        }
630
253k
        else {
631
253k
            destroy_unexpected();
632
253k
        }
633
37.7M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
172k
    {
627
172k
        if (has_value()) {
628
149k
            destroy_value();
629
149k
        }
630
23.1k
        else {
631
23.1k
            destroy_unexpected();
632
23.1k
        }
633
172k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
14.6k
    {
627
14.6k
        if (has_value()) {
628
1.09k
            destroy_value();
629
1.09k
        }
630
13.6k
        else {
631
13.6k
            destroy_unexpected();
632
13.6k
        }
633
14.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
29.3k
    {
627
29.3k
        if (has_value()) {
628
22
            destroy_value();
629
22
        }
630
29.3k
        else {
631
29.3k
            destroy_unexpected();
632
29.3k
        }
633
29.3k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
18.3M
    {
627
18.3M
        if (has_value()) {
628
18.2M
            destroy_value();
629
18.2M
        }
630
48.3k
        else {
631
48.3k
            destroy_unexpected();
632
48.3k
        }
633
18.3M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
320k
    {
627
320k
        if (has_value()) {
628
311k
            destroy_value();
629
311k
        }
630
8.86k
        else {
631
8.86k
            destroy_unexpected();
632
8.86k
        }
633
320k
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
28
    {
627
28
        if (has_value()) {
628
0
            destroy_value();
629
0
        }
630
28
        else {
631
28
            destroy_unexpected();
632
28
        }
633
28
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
319k
    {
627
319k
        if (has_value()) {
628
309k
            destroy_value();
629
309k
        }
630
9.28k
        else {
631
9.28k
            destroy_unexpected();
632
9.28k
        }
633
319k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
46.7k
    {
627
46.7k
        if (has_value()) {
628
724
            destroy_value();
629
724
        }
630
46.0k
        else {
631
46.0k
            destroy_unexpected();
632
46.0k
        }
633
46.7k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
46.7k
    {
627
46.7k
        if (has_value()) {
628
724
            destroy_value();
629
724
        }
630
46.0k
        else {
631
46.0k
            destroy_unexpected();
632
46.0k
        }
633
46.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
159k
    {
627
159k
        if (has_value()) {
628
150k
            destroy_value();
629
150k
        }
630
9.50k
        else {
631
9.50k
            destroy_unexpected();
632
9.50k
        }
633
159k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::~expected_storage_base()
Line
Count
Source
626
18.3M
    {
627
18.3M
        if (has_value()) {
628
18.2M
            destroy_value();
629
18.2M
        }
630
19.0k
        else {
631
19.0k
            destroy_unexpected();
632
19.0k
        }
633
18.3M
    }
634
635
    constexpr T& get_value() & noexcept
636
37.5M
    {
637
37.5M
        return *value_ptr();
638
37.5M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
311k
    {
637
311k
        return *value_ptr();
638
311k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
309k
    {
637
309k
        return *value_ptr();
638
309k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
724
    {
637
724
        return *value_ptr();
638
724
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
724
    {
637
724
        return *value_ptr();
638
724
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
148k
    {
637
148k
        return *value_ptr();
638
148k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
150k
    {
637
150k
        return *value_ptr();
638
150k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
18.2M
    {
637
18.2M
        return *value_ptr();
638
18.2M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::get_value() &
Line
Count
Source
636
18.2M
    {
637
18.2M
        return *value_ptr();
638
18.2M
    }
639
    constexpr const T& get_value() const& noexcept
640
    {
641
        return *value_ptr();
642
    }
643
    constexpr T&& get_value() && noexcept
644
    {
645
        return std::move(*value_ptr());
646
    }
647
    constexpr const T&& get_value() const&& noexcept
648
    {
649
        return std::move(*value_ptr());
650
    }
651
652
    constexpr unexpected<E>& get_unexpected() & noexcept
653
110k
    {
654
110k
        return *unexpected_ptr();
655
110k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
Line
Count
Source
653
8.86k
    {
654
8.86k
        return *unexpected_ptr();
655
8.86k
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
Line
Count
Source
653
28
    {
654
28
        return *unexpected_ptr();
655
28
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
Line
Count
Source
653
9.28k
    {
654
9.28k
        return *unexpected_ptr();
655
9.28k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
Line
Count
Source
653
46.0k
    {
654
46.0k
        return *unexpected_ptr();
655
46.0k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::get_unexpected() &
Line
Count
Source
653
46.0k
    {
654
46.0k
        return *unexpected_ptr();
655
46.0k
    }
656
    constexpr const unexpected<E>& get_unexpected() const& noexcept
657
    {
658
        return *unexpected_ptr();
659
    }
660
    constexpr unexpected<E>&& get_unexpected() && noexcept
661
    {
662
        return std::move(*unexpected_ptr());
663
    }
664
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
665
    {
666
        return std::move(*unexpected_ptr());
667
    }
668
669
    SCN_NODISCARD constexpr bool has_value() const noexcept
670
113M
    {
671
113M
        return m_has_value;
672
113M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
479k
    {
671
479k
        return m_has_value;
672
479k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
14.6k
    {
671
14.6k
        return m_has_value;
672
14.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
29.3k
    {
671
29.3k
        return m_has_value;
672
29.3k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
54.9M
    {
671
54.9M
        return m_has_value;
672
54.9M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
960k
    {
671
960k
        return m_has_value;
672
960k
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
84
    {
671
84
        return m_has_value;
672
84
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
957k
    {
671
957k
        return m_has_value;
672
957k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
140k
    {
671
140k
        return m_has_value;
672
140k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
140k
    {
671
140k
        return m_has_value;
672
140k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
469k
    {
671
469k
        return m_has_value;
672
469k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::has_value() const
Line
Count
Source
670
54.9M
    {
671
54.9M
        return m_has_value;
672
54.9M
    }
673
674
    template <typename... Args>
675
    void construct(Args&&... args) noexcept(
676
        std::is_nothrow_constructible_v<T, Args...>)
677
37.5M
    {
678
37.5M
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
37.5M
        m_has_value = true;
680
37.5M
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
149k
    {
678
149k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
149k
        m_has_value = true;
680
149k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::construct<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
677
1.09k
    {
678
1.09k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
1.09k
        m_has_value = true;
680
1.09k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
22
    {
678
22
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
22
        m_has_value = true;
680
22
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::construct<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
677
18.2M
    {
678
18.2M
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
18.2M
        m_has_value = true;
680
18.2M
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
311k
    {
678
311k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
311k
        m_has_value = true;
680
311k
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
309k
    {
678
309k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
309k
        m_has_value = true;
680
309k
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
724
    {
678
724
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
724
        m_has_value = true;
680
724
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
724
    {
678
724
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
724
        m_has_value = true;
680
724
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
677
150k
    {
678
150k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
150k
        m_has_value = true;
680
150k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::construct<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
677
18.2M
    {
678
18.2M
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
679
18.2M
        m_has_value = true;
680
18.2M
    }
681
    template <typename... Args>
682
    void construct_unexpected(Args&&... args) noexcept(
683
        std::is_nothrow_constructible_v<E, Args...>)
684
253k
    {
685
253k
        scn::detail::construct_at(unexpected_ptr(),
686
253k
                                  std::forward<Args>(args)...);
687
253k
        m_has_value = false;
688
253k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
23.1k
    {
685
23.1k
        scn::detail::construct_at(unexpected_ptr(),
686
23.1k
                                  std::forward<Args>(args)...);
687
23.1k
        m_has_value = false;
688
23.1k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
13.6k
    {
685
13.6k
        scn::detail::construct_at(unexpected_ptr(),
686
13.6k
                                  std::forward<Args>(args)...);
687
13.6k
        m_has_value = false;
688
13.6k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
29.3k
    {
685
29.3k
        scn::detail::construct_at(unexpected_ptr(),
686
29.3k
                                  std::forward<Args>(args)...);
687
29.3k
        m_has_value = false;
688
29.3k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
48.3k
    {
685
48.3k
        scn::detail::construct_at(unexpected_ptr(),
686
48.3k
                                  std::forward<Args>(args)...);
687
48.3k
        m_has_value = false;
688
48.3k
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
8.86k
    {
685
8.86k
        scn::detail::construct_at(unexpected_ptr(),
686
8.86k
                                  std::forward<Args>(args)...);
687
8.86k
        m_has_value = false;
688
8.86k
    }
void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
28
    {
685
28
        scn::detail::construct_at(unexpected_ptr(),
686
28
                                  std::forward<Args>(args)...);
687
28
        m_has_value = false;
688
28
    }
void scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
9.28k
    {
685
9.28k
        scn::detail::construct_at(unexpected_ptr(),
686
9.28k
                                  std::forward<Args>(args)...);
687
9.28k
        m_has_value = false;
688
9.28k
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
46.0k
    {
685
46.0k
        scn::detail::construct_at(unexpected_ptr(),
686
46.0k
                                  std::forward<Args>(args)...);
687
46.0k
        m_has_value = false;
688
46.0k
    }
Unexecuted instantiation: void scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
void scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
46.0k
    {
685
46.0k
        scn::detail::construct_at(unexpected_ptr(),
686
46.0k
                                  std::forward<Args>(args)...);
687
46.0k
        m_has_value = false;
688
46.0k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
9.50k
    {
685
9.50k
        scn::detail::construct_at(unexpected_ptr(),
686
9.50k
                                  std::forward<Args>(args)...);
687
9.50k
        m_has_value = false;
688
9.50k
    }
void scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v3::scan_error>(std::__1::in_place_t const&, scn::v3::scan_error&&)
Line
Count
Source
684
19.0k
    {
685
19.0k
        scn::detail::construct_at(unexpected_ptr(),
686
19.0k
                                  std::forward<Args>(args)...);
687
19.0k
        m_has_value = false;
688
19.0k
    }
689
690
    void destroy_value() noexcept
691
37.5M
    {
692
37.5M
        scn::detail::destroy_at(value_ptr());
693
37.5M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
149k
    {
692
149k
        scn::detail::destroy_at(value_ptr());
693
149k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
1.09k
    {
692
1.09k
        scn::detail::destroy_at(value_ptr());
693
1.09k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
22
    {
692
22
        scn::detail::destroy_at(value_ptr());
693
22
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
18.2M
    {
692
18.2M
        scn::detail::destroy_at(value_ptr());
693
18.2M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
311k
    {
692
311k
        scn::detail::destroy_at(value_ptr());
693
311k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
309k
    {
692
309k
        scn::detail::destroy_at(value_ptr());
693
309k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
724
    {
692
724
        scn::detail::destroy_at(value_ptr());
693
724
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
724
    {
692
724
        scn::detail::destroy_at(value_ptr());
693
724
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
150k
    {
692
150k
        scn::detail::destroy_at(value_ptr());
693
150k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::destroy_value()
Line
Count
Source
691
18.2M
    {
692
18.2M
        scn::detail::destroy_at(value_ptr());
693
18.2M
    }
694
    void destroy_unexpected() noexcept
695
253k
    {
696
253k
        scn::detail::destroy_at(unexpected_ptr());
697
253k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
23.1k
    {
696
23.1k
        scn::detail::destroy_at(unexpected_ptr());
697
23.1k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
13.6k
    {
696
13.6k
        scn::detail::destroy_at(unexpected_ptr());
697
13.6k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
29.3k
    {
696
29.3k
        scn::detail::destroy_at(unexpected_ptr());
697
29.3k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
48.3k
    {
696
48.3k
        scn::detail::destroy_at(unexpected_ptr());
697
48.3k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
8.86k
    {
696
8.86k
        scn::detail::destroy_at(unexpected_ptr());
697
8.86k
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
28
    {
696
28
        scn::detail::destroy_at(unexpected_ptr());
697
28
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
9.28k
    {
696
9.28k
        scn::detail::destroy_at(unexpected_ptr());
697
9.28k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
46.0k
    {
696
46.0k
        scn::detail::destroy_at(unexpected_ptr());
697
46.0k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
46.0k
    {
696
46.0k
        scn::detail::destroy_at(unexpected_ptr());
697
46.0k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
9.50k
    {
696
9.50k
        scn::detail::destroy_at(unexpected_ptr());
697
9.50k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::destroy_unexpected()
Line
Count
Source
695
19.0k
    {
696
19.0k
        scn::detail::destroy_at(unexpected_ptr());
697
19.0k
    }
698
699
private:
700
    T* value_ptr() noexcept
701
112M
    {
702
112M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
112M
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
447k
    {
702
447k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
447k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
2.18k
    {
702
2.18k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
2.18k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
44
    {
702
44
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
44
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
54.8M
    {
702
54.8M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
54.8M
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
934k
    {
702
934k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
934k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
929k
    {
702
929k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
929k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
2.17k
    {
702
2.17k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
2.17k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
2.17k
    {
702
2.17k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
2.17k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
450k
    {
702
450k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
450k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::value_ptr()
Line
Count
Source
701
54.8M
    {
702
54.8M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
703
54.8M
    }
704
    const T* value_ptr() const noexcept
705
    {
706
        return reinterpret_cast<const T*>(
707
            SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
708
    }
709
710
    SCN_GCC_PUSH
711
    SCN_GCC_IGNORE("-Wcast-align")
712
    unexpected<E>* unexpected_ptr() noexcept
713
616k
    {
714
616k
        return reinterpret_cast<unexpected<E>*>(
715
616k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
616k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
46.2k
    {
714
46.2k
        return reinterpret_cast<unexpected<E>*>(
715
46.2k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
46.2k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
27.2k
    {
714
27.2k
        return reinterpret_cast<unexpected<E>*>(
715
27.2k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
27.2k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
58.7k
    {
714
58.7k
        return reinterpret_cast<unexpected<E>*>(
715
58.7k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
58.7k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
96.7k
    {
714
96.7k
        return reinterpret_cast<unexpected<E>*>(
715
96.7k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
96.7k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
26.5k
    {
714
26.5k
        return reinterpret_cast<unexpected<E>*>(
715
26.5k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
26.5k
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
84
    {
714
84
        return reinterpret_cast<unexpected<E>*>(
715
84
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
84
    }
scn::v3::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
27.8k
    {
714
27.8k
        return reinterpret_cast<unexpected<E>*>(
715
27.8k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
27.8k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
138k
    {
714
138k
        return reinterpret_cast<unexpected<E>*>(
715
138k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
138k
    }
Unexecuted instantiation: scn::v3::detail::expected_storage_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
scn::v3::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
138k
    {
714
138k
        return reinterpret_cast<unexpected<E>*>(
715
138k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
138k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
19.0k
    {
714
19.0k
        return reinterpret_cast<unexpected<E>*>(
715
19.0k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
19.0k
    }
scn::v3::detail::expected_storage_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, false>::unexpected_ptr()
Line
Count
Source
713
38.0k
    {
714
38.0k
        return reinterpret_cast<unexpected<E>*>(
715
38.0k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
716
38.0k
    }
717
    const unexpected<E>* unexpected_ptr() const noexcept
718
    {
719
        return reinterpret_cast<const unexpected<E>*>(
720
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
721
    }
722
    SCN_GCC_POP
723
724
    static constexpr std::size_t required_size =
725
        detail::max(sizeof(T), sizeof(unexpected<E>));
726
    static constexpr std::size_t required_alignment =
727
        detail::max(alignof(T), alignof(unexpected<E>));
728
729
    alignas(required_alignment) unsigned char m_memory[required_size];
730
    bool m_has_value;
731
};
732
733
template <typename E>
734
struct SCN_TRIVIAL_ABI expected_storage_base<void, E, false> {
735
    constexpr expected_storage_base() noexcept : m_has_value(true) {}
736
737
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
738
        : m_has_value(false)
739
    {
740
    }
741
742
    explicit constexpr expected_storage_base(std::in_place_t) noexcept
743
        : m_has_value(true)
744
    {
745
    }
746
747
    template <typename... Args,
748
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
749
    explicit constexpr expected_storage_base(
750
        unexpect_t,
751
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
752
        : m_has_value(false)
753
    {
754
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
755
    }
756
757
    ~expected_storage_base()
758
    {
759
        if (!has_value()) {
760
            destroy_unexpected();
761
        }
762
    }
763
764
    constexpr unexpected<E>& get_unexpected() & noexcept
765
    {
766
        return *unexpected_ptr();
767
    }
768
    constexpr const unexpected<E>& get_unexpected() const& noexcept
769
    {
770
        return *unexpected_ptr();
771
    }
772
    constexpr unexpected<E>&& get_unexpected() && noexcept
773
    {
774
        return std::move(*unexpected_ptr());
775
    }
776
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
777
    {
778
        return std::move(*unexpected_ptr());
779
    }
780
781
    SCN_NODISCARD constexpr bool has_value() const noexcept
782
    {
783
        return m_has_value;
784
    }
785
786
    template <typename... Args>
787
    constexpr void construct(Args&&...) noexcept
788
    {
789
        m_has_value = true;
790
    }
791
    template <typename... Args>
792
    void construct_unexpected(Args&&... args) noexcept(
793
        std::is_nothrow_constructible_v<E, Args...>)
794
    {
795
        scn::detail::construct_at(unexpected_ptr(),
796
                                  std::forward<Args>(args)...);
797
        m_has_value = false;
798
    }
799
800
    static constexpr void destroy_value() noexcept {}
801
    void destroy_unexpected() noexcept
802
    {
803
        scn::detail::destroy_at(unexpected_ptr());
804
    }
805
806
private:
807
    SCN_GCC_PUSH
808
    SCN_GCC_IGNORE("-Wcast-align")
809
    unexpected<E>* unexpected_ptr()
810
    {
811
        return reinterpret_cast<unexpected<E>*>(m_memory);
812
    }
813
    const unexpected<E>* unexpected_ptr() const
814
    {
815
        return reinterpret_cast<const unexpected<E>*>(m_memory);
816
    }
817
    SCN_GCC_POP
818
819
    static constexpr std::size_t required_size = sizeof(unexpected<E>);
820
    static constexpr std::size_t required_alignment = alignof(unexpected<E>);
821
822
    alignas(required_alignment) unsigned char m_memory[required_size];
823
    bool m_has_value;
824
};
825
826
template <typename T, typename U>
827
using is_void_or = std::conditional_t<std::is_void_v<T>, std::true_type, U>;
828
829
template <typename T,
830
          typename E,
831
          bool IsTriviallyCopyable =
832
              std::conjunction_v<std::is_trivially_copyable<T>,
833
                                 std::is_trivially_copyable<E>>>
834
struct expected_operations_base;
835
836
template <typename T, typename E>
837
struct SCN_TRIVIAL_ABI expected_operations_base<T, E, true>
838
    : expected_storage_base<T, E> {
839
    using expected_storage_base<T, E>::expected_storage_base;
840
};
841
842
template <typename T, typename E>
843
struct SCN_TRIVIAL_ABI expected_operations_base<T, E, false>
844
    : expected_storage_base<T, E> {
845
    using expected_storage_base<T, E>::expected_storage_base;
846
847
    expected_operations_base(const expected_operations_base& other) noexcept(
848
        std::is_nothrow_copy_constructible_v<T> &&
849
        std::is_nothrow_copy_constructible_v<E>)
850
        : expected_storage_base<T, E>(deferred_init_tag)
851
    {
852
        construct_common(other);
853
    }
854
    expected_operations_base(expected_operations_base&& other) noexcept(
855
        std::is_nothrow_move_constructible_v<T> &&
856
        std::is_nothrow_move_constructible_v<E>)
857
        : expected_storage_base<T, E>(deferred_init_tag)
858
    {
859
        construct_common(std::move(other));
860
    }
861
862
    expected_operations_base&
863
    operator=(const expected_operations_base& other) noexcept(
864
        noexcept(assign_common(other)))
865
    {
866
        assign_common(other);
867
        return *this;
868
    }
869
    expected_operations_base&
870
    operator=(expected_operations_base&& other) noexcept(
871
        noexcept(assign_common(std::move(other))))
872
    {
873
        assign_common(std::move(other));
874
        return *this;
875
    }
876
877
    ~expected_operations_base() = default;
878
879
private:
880
    template <typename Other>
881
    void construct_common(Other&& other) noexcept(
882
        noexcept(expected_storage_base<T, E>::construct(
883
            std::forward<Other>(other).get_value())) &&
884
        noexcept(expected_storage_base<T, E>::construct_unexpected(
885
            std::forward<Other>(other).get_unexpected())))
886
    {
887
        if (other.has_value()) {
888
            this->construct(std::forward<Other>(other).get_value());
889
        }
890
        else {
891
            this->construct_unexpected(
892
                std::forward<Other>(other).get_unexpected());
893
        }
894
    }
895
896
    template <typename Other>
897
    void assign_common(Other&& other) noexcept(
898
        noexcept(reassign_value(std::forward<Other>(other))) &&
899
        noexcept(reassign_unexpected(std::forward<Other>(other))) &&
900
        noexcept(assign_value_over_unexpected(std::forward<Other>(other))) &&
901
        noexcept(assign_unexpected_over_value(std::forward<Other>(other))))
902
    {
903
        if (this->has_value()) {
904
            if (other.has_value()) {
905
                return reassign_value(std::forward<Other>(other));
906
            }
907
            return assign_unexpected_over_value(std::forward<Other>(other));
908
        }
909
910
        if (other.has_value()) {
911
            return assign_value_over_unexpected(std::forward<Other>(other));
912
        }
913
        return reassign_unexpected(std::forward<Other>(other));
914
    }
915
916
    template <typename Other>
917
    void reassign_value(Other&& other) noexcept(
918
        std::is_nothrow_assignable_v<
919
            T,
920
            decltype(std::forward<Other>(other).get_value())>)
921
    {
922
        this->get_value() = std::forward<Other>(other).get_value();
923
    }
924
925
    template <typename Other>
926
    void reassign_unexpected(Other&& other) noexcept(
927
        std::is_nothrow_assignable_v<
928
            E,
929
            decltype(std::forward<Other>(other).get_unexpected())>)
930
    {
931
        this->get_unexpected() = std::forward<Other>(other).get_unexpected();
932
    }
933
934
#if SCN_HAS_EXCEPTIONS
935
    void assign_value_over_unexpected(
936
        const expected_operations_base&
937
            other) noexcept(std::is_nothrow_copy_constructible_v<T> ||
938
                            std::is_nothrow_move_constructible_v<T>)
939
    {
940
        if constexpr (std::is_nothrow_copy_constructible_v<T>) {
941
            this->destroy_unexpected();
942
            this->construct(other.get_value());
943
        }
944
        else if constexpr (std::is_nothrow_move_constructible_v<T>) {
945
            T tmp = other.get_value();
946
            this->destroy_unexpected();
947
            this->construct(std::move(tmp));
948
        }
949
        else {
950
            auto tmp = std::move(this->get_unexpecetd());
951
            this->destroy_unexpected();
952
953
            try {
954
                this->construct(other.get());
955
            }
956
            catch (...) {
957
                this->construct_unexpected(std::move(tmp));
958
                throw;
959
            }
960
        }
961
    }
962
963
    void
964
    assign_value_over_unexpected(expected_operations_base&& other) noexcept(
965
        std::is_nothrow_move_constructible_v<T>)
966
    {
967
        if constexpr (std::is_nothrow_move_constructible_v<T>) {
968
            this->destroy_unexpected();
969
            this->construct(std::move(other).get_value());
970
        }
971
        else {
972
            auto tmp = std::move(this->get_unexpected());
973
            this->destroy_unexpected();
974
975
            try {
976
                this->construct(std::move(other).get_value());
977
            }
978
            catch (...) {
979
                this->construct_unexpected(std::move(tmp));
980
                throw;
981
            }
982
        }
983
    }
984
#else
985
    template <typename Other>
986
    void assing_value_over_unexpected(Other&& other) noexcept
987
    {
988
        this->destroy_unexpected();
989
        this->construct_value(std::forward<Other>(other).get_value());
990
    }
991
#endif
992
993
    template <typename Other>
994
    void assign_unexpected_over_value(Other&& other) noexcept(
995
        std::is_nothrow_constructible_v<
996
            E,
997
            decltype(std::forward<Other>(other).get_unexpected())>)
998
    {
999
        this->destroy_value();
1000
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1001
    }
1002
};
1003
1004
/*
1005
 * Base class trickery to conditionally mark copy and move
1006
 * constructors of an expected as =deleted.
1007
 *
1008
 * We need to do this, because otherwise utilities like
1009
 * std::is_copy_constructible wouldn't work for expected: the
1010
 * constructors need to be explicitly =deleted, not just cause a
1011
 * compiler error when trying to copy a value of a non-copyable
1012
 * type.
1013
 *
1014
 * Rationale for doing this with base classes is above.
1015
 */
1016
template <typename T,
1017
          typename E,
1018
          bool EnableCopy = (std::is_copy_constructible_v<T> &&
1019
                             std::is_copy_constructible_v<E>),
1020
          bool EnableMove = (std::is_move_constructible_v<T> &&
1021
                             std::is_move_constructible_v<E>)>
1022
struct expected_delete_ctor_base;
1023
1024
// Implementation for types that are both copy and move
1025
// constructible: Copy and move constructors are =defaulted
1026
template <typename T, typename E>
1027
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, true, true> {
1028
    expected_delete_ctor_base() = default;
1029
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1030
        default;
1031
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1032
    ~expected_delete_ctor_base() = default;
1033
1034
    expected_delete_ctor_base(const expected_delete_ctor_base&) = default;
1035
    expected_delete_ctor_base(expected_delete_ctor_base&&) = default;
1036
};
1037
1038
// Implementation for types that are neither copy nor move
1039
// constructible: Copy and move constructors are =deleted
1040
template <typename T, typename E>
1041
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, false, false> {
1042
    expected_delete_ctor_base() = default;
1043
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1044
        default;
1045
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1046
    ~expected_delete_ctor_base() = default;
1047
1048
    expected_delete_ctor_base(const expected_delete_ctor_base&) = delete;
1049
    expected_delete_ctor_base(expected_delete_ctor_base&&) = delete;
1050
};
1051
1052
// Implementation for types that are move constructible, but not
1053
// copy constructible Copy constructor is =deleted, but move
1054
// constructor is =defaulted
1055
template <typename T, typename E>
1056
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, false, true> {
1057
    expected_delete_ctor_base() = default;
1058
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1059
        default;
1060
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1061
    ~expected_delete_ctor_base() = default;
1062
1063
    expected_delete_ctor_base(const expected_delete_ctor_base&) = delete;
1064
    expected_delete_ctor_base(expected_delete_ctor_base&&) = default;
1065
};
1066
1067
template <typename T, typename E>
1068
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, true, false> {
1069
    static_assert(dependent_false<T>::value,
1070
                  "Nonsensical type: copy constructible, but not move "
1071
                  "constructible");
1072
};
1073
1074
// Same as above, but for assignment
1075
template <
1076
    typename T,
1077
    typename E,
1078
    bool EnableCopy =
1079
        (std::is_copy_constructible_v<T> && std::is_copy_constructible_v<E> &&
1080
         std::is_copy_assignable_v<T> && std::is_copy_assignable_v<E>),
1081
    bool EnableMove =
1082
        (std::is_move_constructible_v<T> && std::is_move_constructible_v<E> &&
1083
         std::is_move_assignable_v<T> && std::is_move_assignable_v<E>)>
1084
struct expected_delete_assign_base;
1085
1086
template <typename T, typename E>
1087
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, true, true> {
1088
    expected_delete_assign_base() = default;
1089
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1090
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1091
    ~expected_delete_assign_base() = default;
1092
1093
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1094
        default;
1095
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1096
        default;
1097
};
1098
1099
template <typename T, typename E>
1100
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, false, false> {
1101
    expected_delete_assign_base() = default;
1102
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1103
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1104
    ~expected_delete_assign_base() = default;
1105
1106
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1107
        delete;
1108
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1109
        delete;
1110
};
1111
1112
template <typename T, typename E>
1113
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, false, true> {
1114
    expected_delete_assign_base() = default;
1115
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1116
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1117
    ~expected_delete_assign_base() = default;
1118
1119
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1120
        delete;
1121
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1122
        default;
1123
};
1124
1125
template <typename T, typename E>
1126
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, true, false> {
1127
    static_assert(dependent_false<T>::value,
1128
                  "Nonsensical type: copy assignable, but not move "
1129
                  "assignable");
1130
};
1131
1132
struct non_default_ctor_tag_t {};
1133
1134
/*
1135
 * Same as above, but for the default constructor
1136
 *
1137
 * The constructor taking a non_default_ctor_tag_t is needed, to
1138
 * signal that we're not default constructing.
1139
 */
1140
template <typename T,
1141
          typename E,
1142
          bool = std::is_default_constructible_v<T> || std::is_void_v<T>>
1143
struct SCN_TRIVIAL_ABI expected_default_ctor_base {
1144
    constexpr expected_default_ctor_base() = default;
1145
    constexpr explicit expected_default_ctor_base(
1146
        non_default_ctor_tag_t) noexcept
1147
623M
    {
1148
623M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
4.89M
    {
1148
4.89M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
14.6k
    {
1148
14.6k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
438k
    {
1148
438k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
380k
    {
1148
380k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
761k
    {
1148
761k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
14.6k
    {
1148
14.6k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
14.6k
    {
1148
14.6k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
172k
    {
1148
172k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
14.6k
    {
1148
14.6k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
172k
    {
1148
172k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
37.6M
    {
1148
37.6M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
29.3k
    {
1148
29.3k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
111k
    {
1148
111k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
111k
    {
1148
111k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
108k
    {
1148
108k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
29.3k
    {
1148
29.3k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
29.3k
    {
1148
29.3k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
29.3k
    {
1148
29.3k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
18.3M
    {
1148
18.3M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
18.3M
    {
1148
18.3M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
20.2M
    {
1148
20.2M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
46.5M
    {
1148
46.5M
    }
scn::v3::detail::expected_default_ctor_base<char const*, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
27.6M
    {
1148
27.6M
    }
scn::v3::detail::expected_default_ctor_base<wchar_t const*, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
90.8M
    {
1148
90.8M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
21.0M
    {
1148
21.0M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
6.37M
    {
1148
6.37M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
32.6M
    {
1148
32.6M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
4.51M
    {
1148
4.51M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.16M
    {
1148
2.16M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.16M
    {
1148
2.16M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
320k
    {
1148
320k
    }
scn::v3::detail::expected_default_ctor_base<char const*, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
10.7M
    {
1148
10.7M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
16.1k
    {
1148
16.1k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
21.4k
    {
1148
21.4k
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<char const*, long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
6.49M
    {
1148
6.49M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
16.9k
    {
1148
16.9k
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.95k
    {
1148
2.95k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.20k
    {
1148
2.20k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.20k
    {
1148
2.20k
    }
scn::v3::detail::expected_default_ctor_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
28
    {
1148
28
    }
scn::v3::detail::expected_default_ctor_base<char const*, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
17.6M
    {
1148
17.6M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
4.40M
    {
1148
4.40M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.16M
    {
1148
2.16M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.16M
    {
1148
2.16M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
319k
    {
1148
319k
    }
scn::v3::detail::expected_default_ctor_base<long, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
74.8M
    {
1148
74.8M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.13M
    {
1148
2.13M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
744
    {
1148
744
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.17M
    {
1148
2.17M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
17.3k
    {
1148
17.3k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
20.5M
    {
1148
20.5M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
15.1M
    {
1148
15.1M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
3.38M
    {
1148
3.38M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
588k
    {
1148
588k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
351k
    {
1148
351k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
351k
    {
1148
351k
    }
scn::v3::detail::expected_default_ctor_base<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
46.7k
    {
1148
46.7k
    }
scn::v3::detail::expected_default_ctor_base<wchar_t const*, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
38.7M
    {
1148
38.7M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
29.7M
    {
1148
29.7M
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<wchar_t const*, scn::v3::impl::parse_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
2.92M
    {
1148
2.92M
    }
scn::v3::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
591k
    {
1148
591k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
354k
    {
1148
354k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
354k
    {
1148
354k
    }
scn::v3::detail::expected_default_ctor_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
46.7k
    {
1148
46.7k
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
234k
    {
1148
234k
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
236k
    {
1148
236k
    }
Unexecuted instantiation: scn::v3::detail::expected_default_ctor_base<wchar_t, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
337k
    {
1148
337k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
324k
    {
1148
324k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
431k
    {
1148
431k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
369k
    {
1148
369k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
4.57M
    {
1148
4.57M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
339k
    {
1148
339k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
325k
    {
1148
325k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
424k
    {
1148
424k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
367k
    {
1148
367k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
431k
    {
1148
431k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
371k
    {
1148
371k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.3k
    {
1148
82.3k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.2k
    {
1148
82.2k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.5k
    {
1148
82.5k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.4k
    {
1148
82.4k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
19.0M
    {
1148
19.0M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.3k
    {
1148
82.3k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.2k
    {
1148
82.2k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.4k
    {
1148
82.4k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.2k
    {
1148
82.2k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.5k
    {
1148
82.5k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
82.4k
    {
1148
82.4k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
159k
    {
1148
159k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
18.3M
    {
1148
18.3M
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
689k
    {
1148
689k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
757k
    {
1148
757k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
678k
    {
1148
678k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
735k
    {
1148
735k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
745k
    {
1148
745k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
78.9k
    {
1148
78.9k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
79.1k
    {
1148
79.1k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
78.9k
    {
1148
78.9k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
78.9k
    {
1148
78.9k
    }
scn::v3::detail::expected_default_ctor_base<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error, true>::expected_default_ctor_base(scn::v3::detail::non_default_ctor_tag_t)
Line
Count
Source
1147
79.0k
    {
1148
79.0k
    }
1149
};
1150
template <typename T, typename E>
1151
struct SCN_TRIVIAL_ABI expected_default_ctor_base<T, E, false> {
1152
    constexpr expected_default_ctor_base() = delete;
1153
    constexpr explicit expected_default_ctor_base(
1154
        non_default_ctor_tag_t) noexcept
1155
    {
1156
    }
1157
};
1158
1159
template <typename T>
1160
using remove_cvref_t = std::remove_cv_t<std::remove_reference_t<T>>;
1161
1162
template <typename T>
1163
struct is_expected_impl : std::false_type {};
1164
template <typename T, typename E>
1165
struct is_expected_impl<expected<T, E>> : std::true_type {};
1166
template <typename T>
1167
using is_expected = is_expected_impl<remove_cvref_t<T>>;
1168
1169
template <typename Exp>
1170
using is_exp_void = std::is_void<typename remove_cvref_t<Exp>::value_type>;
1171
1172
template <typename Exp>
1173
using expected_value_type = typename remove_cvref_t<Exp>::value_type;
1174
1175
template <
1176
    typename F,
1177
    typename... Args,
1178
    typename = std::void_t<decltype(SCN_DECLVAL(F&&)(SCN_DECLVAL(Args&&)...))>>
1179
constexpr decltype(auto) trivial_invoke(F&& f, Args&&... args) noexcept(
1180
    noexcept(std::forward<F>(f)(std::forward<Args>(args)...)))
1181
5.64M
{
1182
5.64M
    return std::forward<F>(f)(std::forward<Args>(args)...);
1183
5.64M
}
decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::scan_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error, void>(scn::v3::scan_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error&&)
Line
Count
Source
1181
128k
{
1182
128k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1183
128k
}
decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error, void>(scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error&&)
Line
Count
Source
1181
219k
{
1182
219k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1183
219k
}
decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, scn::v3::impl::parse_error, void>(scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&, scn::v3::impl::parse_error&&)
Line
Count
Source
1181
383k
{
1182
383k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1183
383k
}
decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, scn::v3::impl::parse_error&, void>(scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&, scn::v3::impl::parse_error&)
Line
Count
Source
1181
4.91M
{
1182
4.91M
    return std::forward<F>(f)(std::forward<Args>(args)...);
1183
4.91M
}
Unexecuted instantiation: decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::scan_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error const&, void>(scn::v3::scan_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error const&)
Unexecuted instantiation: decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::scan_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error&, void>(scn::v3::scan_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error&)
Unexecuted instantiation: decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error const&, void>(scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error const&)
Unexecuted instantiation: decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error&, void>(scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), scn::v3::impl::eof_error&)
Unexecuted instantiation: decltype(auto) scn::v3::detail::trivial_invoke<scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, scn::v3::impl::parse_error const&, void>(scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&, scn::v3::impl::parse_error const&)
1184
1185
// and_then
1186
1187
template <typename Exp,
1188
          typename F,
1189
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1190
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1191
                                                 *SCN_DECLVAL(Exp)))>
1192
constexpr auto and_then_impl(Exp&& exp, F&& f) noexcept(
1193
    noexcept(trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp))) &&
1194
    std::is_nothrow_constructible_v<Ret,
1195
                                    unexpect_t,
1196
                                    decltype(std::forward<Exp>(exp).error())>)
1197
{
1198
    static_assert(is_expected<Ret>::value, "F must return an expected");
1199
1200
    return SCN_LIKELY(exp.has_value())
1201
               ? trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp))
1202
               : Ret(unexpect, std::forward<Exp>(exp).error());
1203
}
1204
template <typename Exp,
1205
          typename F,
1206
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1207
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F)))>
1208
constexpr auto and_then_impl(Exp&& exp, F&& f) noexcept(
1209
    noexcept(trivial_invoke(std::forward<F>(f))) &&
1210
    std::is_nothrow_constructible_v<Ret,
1211
                                    unexpect_t,
1212
                                    decltype(std::forward<Exp>(exp).error())>)
1213
{
1214
    static_assert(is_expected<Ret>::value, "F must return an expected");
1215
1216
    return SCN_LIKELY(exp.has_value())
1217
               ? trivial_invoke(std::forward<F>(f))
1218
               : Ret(unexpect, std::forward<Exp>(exp).error());
1219
}
1220
1221
// or_else
1222
1223
template <typename Exp,
1224
          typename F,
1225
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1226
                                                 SCN_DECLVAL(Exp).error()))>
1227
constexpr auto or_else_impl(Exp&& exp, F&& f) noexcept(
1228
    noexcept(trivial_invoke(std::forward<F>(f),
1229
                            std::forward<Exp>(exp).error())) &&
1230
    std::is_nothrow_constructible_v<Ret, decltype(std::forward<Exp>(exp))>)
1231
{
1232
    static_assert(is_expected<Ret>::value, "F must return an expected");
1233
1234
    return SCN_LIKELY(exp.has_value())
1235
               ? Ret(std::forward<Exp>(exp))
1236
               : trivial_invoke(std::forward<F>(f),
1237
                                std::forward<Exp>(exp).error());
1238
}
1239
1240
// transform
1241
1242
template <typename Exp,
1243
          typename F,
1244
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1245
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1246
                                                 *SCN_DECLVAL(Exp)))>
1247
constexpr auto transform_impl(Exp&& exp, F&& f)
1248
{
1249
    using result = typename remove_cvref_t<Exp>::template rebind<Ret>;
1250
    if constexpr (std::is_void_v<Ret>) {
1251
        if (SCN_LIKELY(exp.has_value())) {
1252
            trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp));
1253
            return result();
1254
        }
1255
        return result(unexpect, std::forward<Exp>(exp).error());
1256
    }
1257
    else {
1258
        return SCN_LIKELY(exp.has_value())
1259
                   ? result(trivial_invoke(std::forward<F>(f),
1260
                                           *std::forward<Exp>(exp)))
1261
                   : result(unexpect, std::forward<Exp>(exp).error());
1262
    }
1263
}
1264
template <typename Exp,
1265
          typename F,
1266
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1267
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F)))>
1268
constexpr auto transform_impl(Exp&& exp, F&& f)
1269
{
1270
    using result = typename remove_cvref_t<Exp>::template rebind<Ret>;
1271
    if constexpr (std::is_void_v<Ret>) {
1272
        if (SCN_LIKELY(exp.has_value())) {
1273
            trivial_invoke(std::forward<F>(f));
1274
            return result();
1275
        }
1276
        return result(unexpect, std::forward<Exp>(exp).error());
1277
    }
1278
    else {
1279
        return SCN_LIKELY(exp.has_value())
1280
                   ? result(trivial_invoke(std::forward<F>(f)))
1281
                   : result(unexpect, std::forward<Exp>(exp).error());
1282
    }
1283
}
1284
1285
// transform_error
1286
1287
template <typename Exp,
1288
          typename F,
1289
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1290
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1291
                                                 SCN_DECLVAL(Exp).error()))>
1292
constexpr auto transform_error_impl(Exp&& exp, F&& f)
1293
91.3M
{
1294
91.3M
    if constexpr (std::is_void_v<Ret>) {
1295
91.3M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
91.3M
        if (SCN_LIKELY(exp.has_value())) {
1297
91.3M
            return result(*std::forward<Exp>(exp));
1298
91.3M
        }
1299
1300
91.3M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
91.3M
        return result(unexpect, monostate{});
1302
91.3M
    }
1303
91.3M
    else {
1304
91.3M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
91.3M
        return SCN_LIKELY(exp.has_value())
1306
91.3M
                   ? result(*std::forward<Exp>(exp))
1307
91.3M
                   : result(unexpect,
1308
5.64M
                            trivial_invoke(std::forward<F>(f),
1309
5.64M
                                           std::forward<Exp>(exp).error()));
1310
91.3M
    }
1311
91.3M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
4.50M
{
1294
4.50M
    if constexpr (std::is_void_v<Ret>) {
1295
4.50M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
4.50M
        if (SCN_LIKELY(exp.has_value())) {
1297
4.50M
            return result(*std::forward<Exp>(exp));
1298
4.50M
        }
1299
1300
4.50M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
4.50M
        return result(unexpect, monostate{});
1302
4.50M
    }
1303
4.50M
    else {
1304
4.50M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
4.50M
        return SCN_LIKELY(exp.has_value())
1306
4.50M
                   ? result(*std::forward<Exp>(exp))
1307
4.50M
                   : result(unexpect,
1308
54.4k
                            trivial_invoke(std::forward<F>(f),
1309
54.4k
                                           std::forward<Exp>(exp).error()));
1310
4.50M
    }
1311
4.50M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
18.8M
{
1294
18.8M
    if constexpr (std::is_void_v<Ret>) {
1295
18.8M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
18.8M
        if (SCN_LIKELY(exp.has_value())) {
1297
18.8M
            return result(*std::forward<Exp>(exp));
1298
18.8M
        }
1299
1300
18.8M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
18.8M
        return result(unexpect, monostate{});
1302
18.8M
    }
1303
18.8M
    else {
1304
18.8M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
18.8M
        return SCN_LIKELY(exp.has_value())
1306
18.8M
                   ? result(*std::forward<Exp>(exp))
1307
18.8M
                   : result(unexpect,
1308
8.48k
                            trivial_invoke(std::forward<F>(f),
1309
8.48k
                                           std::forward<Exp>(exp).error()));
1310
18.8M
    }
1311
18.8M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<char const*, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
4.69M
{
1294
4.69M
    if constexpr (std::is_void_v<Ret>) {
1295
4.69M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
4.69M
        if (SCN_LIKELY(exp.has_value())) {
1297
4.69M
            return result(*std::forward<Exp>(exp));
1298
4.69M
        }
1299
1300
4.69M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
4.69M
        return result(unexpect, monostate{});
1302
4.69M
    }
1303
4.69M
    else {
1304
4.69M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
4.69M
        return SCN_LIKELY(exp.has_value())
1306
4.69M
                   ? result(*std::forward<Exp>(exp))
1307
4.69M
                   : result(unexpect,
1308
53.0k
                            trivial_invoke(std::forward<F>(f),
1309
53.0k
                                           std::forward<Exp>(exp).error()));
1310
4.69M
    }
1311
4.69M
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>&&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
7.60M
{
1294
7.60M
    if constexpr (std::is_void_v<Ret>) {
1295
7.60M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
7.60M
        if (SCN_LIKELY(exp.has_value())) {
1297
7.60M
            return result(*std::forward<Exp>(exp));
1298
7.60M
        }
1299
1300
7.60M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
7.60M
        return result(unexpect, monostate{});
1302
7.60M
    }
1303
7.60M
    else {
1304
7.60M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
7.60M
        return SCN_LIKELY(exp.has_value())
1306
7.60M
                   ? result(*std::forward<Exp>(exp))
1307
7.60M
                   : result(unexpect,
1308
70.6k
                            trivial_invoke(std::forward<F>(f),
1309
70.6k
                                           std::forward<Exp>(exp).error()));
1310
7.60M
    }
1311
7.60M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
2.16M
{
1294
2.16M
    if constexpr (std::is_void_v<Ret>) {
1295
2.16M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.16M
        if (SCN_LIKELY(exp.has_value())) {
1297
2.16M
            return result(*std::forward<Exp>(exp));
1298
2.16M
        }
1299
1300
2.16M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.16M
        return result(unexpect, monostate{});
1302
2.16M
    }
1303
2.16M
    else {
1304
2.16M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.16M
        return SCN_LIKELY(exp.has_value())
1306
2.16M
                   ? result(*std::forward<Exp>(exp))
1307
2.16M
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
2.16M
    }
1311
2.16M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>&&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
1.64M
{
1294
1.64M
    if constexpr (std::is_void_v<Ret>) {
1295
1.64M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
1.64M
        if (SCN_LIKELY(exp.has_value())) {
1297
1.64M
            return result(*std::forward<Exp>(exp));
1298
1.64M
        }
1299
1300
1.64M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
1.64M
        return result(unexpect, monostate{});
1302
1.64M
    }
1303
1.64M
    else {
1304
1.64M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
1.64M
        return SCN_LIKELY(exp.has_value())
1306
1.64M
                   ? result(*std::forward<Exp>(exp))
1307
1.64M
                   : result(unexpect,
1308
80.7k
                            trivial_invoke(std::forward<F>(f),
1309
80.7k
                                           std::forward<Exp>(exp).error()));
1310
1.64M
    }
1311
1.64M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
6.97k
{
1294
6.97k
    if constexpr (std::is_void_v<Ret>) {
1295
6.97k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
6.97k
        if (SCN_LIKELY(exp.has_value())) {
1297
6.97k
            return result(*std::forward<Exp>(exp));
1298
6.97k
        }
1299
1300
6.97k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
6.97k
        return result(unexpect, monostate{});
1302
6.97k
    }
1303
6.97k
    else {
1304
6.97k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
6.97k
        return SCN_LIKELY(exp.has_value())
1306
6.97k
                   ? result(*std::forward<Exp>(exp))
1307
6.97k
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
6.97k
    }
1311
6.97k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
4.38k
{
1294
4.38k
    if constexpr (std::is_void_v<Ret>) {
1295
4.38k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
4.38k
        if (SCN_LIKELY(exp.has_value())) {
1297
4.38k
            return result(*std::forward<Exp>(exp));
1298
4.38k
        }
1299
1300
4.38k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
4.38k
        return result(unexpect, monostate{});
1302
4.38k
    }
1303
4.38k
    else {
1304
4.38k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
4.38k
        return SCN_LIKELY(exp.has_value())
1306
4.38k
                   ? result(*std::forward<Exp>(exp))
1307
4.38k
                   : result(unexpect,
1308
278
                            trivial_invoke(std::forward<F>(f),
1309
278
                                           std::forward<Exp>(exp).error()));
1310
4.38k
    }
1311
4.38k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
2.20k
{
1294
2.20k
    if constexpr (std::is_void_v<Ret>) {
1295
2.20k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.20k
        if (SCN_LIKELY(exp.has_value())) {
1297
2.20k
            return result(*std::forward<Exp>(exp));
1298
2.20k
        }
1299
1300
2.20k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.20k
        return result(unexpect, monostate{});
1302
2.20k
    }
1303
2.20k
    else {
1304
2.20k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.20k
        return SCN_LIKELY(exp.has_value())
1306
2.20k
                   ? result(*std::forward<Exp>(exp))
1307
2.20k
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
2.20k
    }
1311
2.20k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>&&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
2.17k
{
1294
2.17k
    if constexpr (std::is_void_v<Ret>) {
1295
2.17k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.17k
        if (SCN_LIKELY(exp.has_value())) {
1297
2.17k
            return result(*std::forward<Exp>(exp));
1298
2.17k
        }
1299
1300
2.17k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.17k
        return result(unexpect, monostate{});
1302
2.17k
    }
1303
2.17k
    else {
1304
2.17k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.17k
        return SCN_LIKELY(exp.has_value())
1306
2.17k
                   ? result(*std::forward<Exp>(exp))
1307
2.17k
                   : result(unexpect,
1308
2.17k
                            trivial_invoke(std::forward<F>(f),
1309
2.17k
                                           std::forward<Exp>(exp).error()));
1310
2.17k
    }
1311
2.17k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
2.16M
{
1294
2.16M
    if constexpr (std::is_void_v<Ret>) {
1295
2.16M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.16M
        if (SCN_LIKELY(exp.has_value())) {
1297
2.16M
            return result(*std::forward<Exp>(exp));
1298
2.16M
        }
1299
1300
2.16M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.16M
        return result(unexpect, monostate{});
1302
2.16M
    }
1303
2.16M
    else {
1304
2.16M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.16M
        return SCN_LIKELY(exp.has_value())
1306
2.16M
                   ? result(*std::forward<Exp>(exp))
1307
2.16M
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
2.16M
    }
1311
2.16M
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
2.13M
{
1294
2.13M
    if constexpr (std::is_void_v<Ret>) {
1295
2.13M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.13M
        if (SCN_LIKELY(exp.has_value())) {
1297
2.13M
            return result(*std::forward<Exp>(exp));
1298
2.13M
        }
1299
1300
2.13M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.13M
        return result(unexpect, monostate{});
1302
2.13M
    }
1303
2.13M
    else {
1304
2.13M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.13M
        return SCN_LIKELY(exp.has_value())
1306
2.13M
                   ? result(*std::forward<Exp>(exp))
1307
2.13M
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
2.13M
    }
1311
2.13M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
2.06M
{
1294
2.06M
    if constexpr (std::is_void_v<Ret>) {
1295
2.06M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.06M
        if (SCN_LIKELY(exp.has_value())) {
1297
2.06M
            return result(*std::forward<Exp>(exp));
1298
2.06M
        }
1299
1300
2.06M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.06M
        return result(unexpect, monostate{});
1302
2.06M
    }
1303
2.06M
    else {
1304
2.06M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.06M
        return SCN_LIKELY(exp.has_value())
1306
2.06M
                   ? result(*std::forward<Exp>(exp))
1307
2.06M
                   : result(unexpect,
1308
2.06M
                            trivial_invoke(std::forward<F>(f),
1309
2.06M
                                           std::forward<Exp>(exp).error()));
1310
2.06M
    }
1311
2.06M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
744
{
1294
744
    if constexpr (std::is_void_v<Ret>) {
1295
744
        using result = expected<expected_value_type<Exp>, monostate>;
1296
744
        if (SCN_LIKELY(exp.has_value())) {
1297
744
            return result(*std::forward<Exp>(exp));
1298
744
        }
1299
1300
744
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
744
        return result(unexpect, monostate{});
1302
744
    }
1303
744
    else {
1304
744
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
744
        return SCN_LIKELY(exp.has_value())
1306
744
                   ? result(*std::forward<Exp>(exp))
1307
744
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
744
    }
1311
744
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
1.48k
{
1294
1.48k
    if constexpr (std::is_void_v<Ret>) {
1295
1.48k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
1.48k
        if (SCN_LIKELY(exp.has_value())) {
1297
1.48k
            return result(*std::forward<Exp>(exp));
1298
1.48k
        }
1299
1300
1.48k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
1.48k
        return result(unexpect, monostate{});
1302
1.48k
    }
1303
1.48k
    else {
1304
1.48k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
1.48k
        return SCN_LIKELY(exp.has_value())
1306
1.48k
                   ? result(*std::forward<Exp>(exp))
1307
1.48k
                   : result(unexpect,
1308
1.48k
                            trivial_invoke(std::forward<F>(f),
1309
1.48k
                                           std::forward<Exp>(exp).error()));
1310
1.48k
    }
1311
1.48k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
2.17M
{
1294
2.17M
    if constexpr (std::is_void_v<Ret>) {
1295
2.17M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.17M
        if (SCN_LIKELY(exp.has_value())) {
1297
2.17M
            return result(*std::forward<Exp>(exp));
1298
2.17M
        }
1299
1300
2.17M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.17M
        return result(unexpect, monostate{});
1302
2.17M
    }
1303
2.17M
    else {
1304
2.17M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.17M
        return SCN_LIKELY(exp.has_value())
1306
2.17M
                   ? result(*std::forward<Exp>(exp))
1307
2.17M
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
2.17M
    }
1311
2.17M
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<char const*, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
2.07M
{
1294
2.07M
    if constexpr (std::is_void_v<Ret>) {
1295
2.07M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
2.07M
        if (SCN_LIKELY(exp.has_value())) {
1297
2.07M
            return result(*std::forward<Exp>(exp));
1298
2.07M
        }
1299
1300
2.07M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
2.07M
        return result(unexpect, monostate{});
1302
2.07M
    }
1303
2.07M
    else {
1304
2.07M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
2.07M
        return SCN_LIKELY(exp.has_value())
1306
2.07M
                   ? result(*std::forward<Exp>(exp))
1307
2.07M
                   : result(unexpect,
1308
2.07M
                            trivial_invoke(std::forward<F>(f),
1309
2.07M
                                           std::forward<Exp>(exp).error()));
1310
2.07M
    }
1311
2.07M
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>&&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
880k
{
1294
880k
    if constexpr (std::is_void_v<Ret>) {
1295
880k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
880k
        if (SCN_LIKELY(exp.has_value())) {
1297
880k
            return result(*std::forward<Exp>(exp));
1298
880k
        }
1299
1300
880k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
880k
        return result(unexpect, monostate{});
1302
880k
    }
1303
880k
    else {
1304
880k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
880k
        return SCN_LIKELY(exp.has_value())
1306
880k
                   ? result(*std::forward<Exp>(exp))
1307
880k
                   : result(unexpect,
1308
74.1k
                            trivial_invoke(std::forward<F>(f),
1309
74.1k
                                           std::forward<Exp>(exp).error()));
1310
880k
    }
1311
880k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
351k
{
1294
351k
    if constexpr (std::is_void_v<Ret>) {
1295
351k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
351k
        if (SCN_LIKELY(exp.has_value())) {
1297
351k
            return result(*std::forward<Exp>(exp));
1298
351k
        }
1299
1300
351k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
351k
        return result(unexpect, monostate{});
1302
351k
    }
1303
351k
    else {
1304
351k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
351k
        return SCN_LIKELY(exp.has_value())
1306
351k
                   ? result(*std::forward<Exp>(exp))
1307
351k
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
351k
    }
1311
351k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>&&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
303k
{
1294
303k
    if constexpr (std::is_void_v<Ret>) {
1295
303k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
303k
        if (SCN_LIKELY(exp.has_value())) {
1297
303k
            return result(*std::forward<Exp>(exp));
1298
303k
        }
1299
1300
303k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
303k
        return result(unexpect, monostate{});
1302
303k
    }
1303
303k
    else {
1304
303k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
303k
        return SCN_LIKELY(exp.has_value())
1306
303k
                   ? result(*std::forward<Exp>(exp))
1307
303k
                   : result(unexpect,
1308
300k
                            trivial_invoke(std::forward<F>(f),
1309
300k
                                           std::forward<Exp>(exp).error()));
1310
303k
    }
1311
303k
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
37.2M
{
1294
37.2M
    if constexpr (std::is_void_v<Ret>) {
1295
37.2M
        using result = expected<expected_value_type<Exp>, monostate>;
1296
37.2M
        if (SCN_LIKELY(exp.has_value())) {
1297
37.2M
            return result(*std::forward<Exp>(exp));
1298
37.2M
        }
1299
1300
37.2M
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
37.2M
        return result(unexpect, monostate{});
1302
37.2M
    }
1303
37.2M
    else {
1304
37.2M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
37.2M
        return SCN_LIKELY(exp.has_value())
1306
37.2M
                   ? result(*std::forward<Exp>(exp))
1307
37.2M
                   : result(unexpect,
1308
12.5k
                            trivial_invoke(std::forward<F>(f),
1309
12.5k
                                           std::forward<Exp>(exp).error()));
1310
37.2M
    }
1311
37.2M
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>&&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
886k
{
1294
886k
    if constexpr (std::is_void_v<Ret>) {
1295
886k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
886k
        if (SCN_LIKELY(exp.has_value())) {
1297
886k
            return result(*std::forward<Exp>(exp));
1298
886k
        }
1299
1300
886k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
886k
        return result(unexpect, monostate{});
1302
886k
    }
1303
886k
    else {
1304
886k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
886k
        return SCN_LIKELY(exp.has_value())
1306
886k
                   ? result(*std::forward<Exp>(exp))
1307
886k
                   : result(unexpect,
1308
74.2k
                            trivial_invoke(std::forward<F>(f),
1309
74.2k
                                           std::forward<Exp>(exp).error()));
1310
886k
    }
1311
886k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
354k
{
1294
354k
    if constexpr (std::is_void_v<Ret>) {
1295
354k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
354k
        if (SCN_LIKELY(exp.has_value())) {
1297
354k
            return result(*std::forward<Exp>(exp));
1298
354k
        }
1299
1300
354k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
354k
        return result(unexpect, monostate{});
1302
354k
    }
1303
354k
    else {
1304
354k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
354k
        return SCN_LIKELY(exp.has_value())
1306
354k
                   ? result(*std::forward<Exp>(exp))
1307
354k
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
354k
    }
1311
354k
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
234k
{
1294
234k
    if constexpr (std::is_void_v<Ret>) {
1295
234k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
234k
        if (SCN_LIKELY(exp.has_value())) {
1297
234k
            return result(*std::forward<Exp>(exp));
1298
234k
        }
1299
1300
234k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
234k
        return result(unexpect, monostate{});
1302
234k
    }
1303
234k
    else {
1304
234k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
234k
        return SCN_LIKELY(exp.has_value())
1306
234k
                   ? result(*std::forward<Exp>(exp))
1307
234k
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
234k
    }
1311
234k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
443k
{
1294
443k
    if constexpr (std::is_void_v<Ret>) {
1295
443k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
443k
        if (SCN_LIKELY(exp.has_value())) {
1297
443k
            return result(*std::forward<Exp>(exp));
1298
443k
        }
1299
1300
443k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
443k
        return result(unexpect, monostate{});
1302
443k
    }
1303
443k
    else {
1304
443k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
443k
        return SCN_LIKELY(exp.has_value())
1306
443k
                   ? result(*std::forward<Exp>(exp))
1307
443k
                   : result(unexpect,
1308
443k
                            trivial_invoke(std::forward<F>(f),
1309
443k
                                           std::forward<Exp>(exp).error()));
1310
443k
    }
1311
443k
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
236k
{
1294
236k
    if constexpr (std::is_void_v<Ret>) {
1295
236k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
236k
        if (SCN_LIKELY(exp.has_value())) {
1297
236k
            return result(*std::forward<Exp>(exp));
1298
236k
        }
1299
1300
236k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
236k
        return result(unexpect, monostate{});
1302
236k
    }
1303
236k
    else {
1304
236k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
236k
        return SCN_LIKELY(exp.has_value())
1306
236k
                   ? result(*std::forward<Exp>(exp))
1307
236k
                   : result(unexpect,
1308
0
                            trivial_invoke(std::forward<F>(f),
1309
0
                                           std::forward<Exp>(exp).error()));
1310
236k
    }
1311
236k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Line
Count
Source
1293
332k
{
1294
332k
    if constexpr (std::is_void_v<Ret>) {
1295
332k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
332k
        if (SCN_LIKELY(exp.has_value())) {
1297
332k
            return result(*std::forward<Exp>(exp));
1298
332k
        }
1299
1300
332k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
332k
        return result(unexpect, monostate{});
1302
332k
    }
1303
332k
    else {
1304
332k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
332k
        return SCN_LIKELY(exp.has_value())
1306
332k
                   ? result(*std::forward<Exp>(exp))
1307
332k
                   : result(unexpect,
1308
332k
                            trivial_invoke(std::forward<F>(f),
1309
332k
                                           std::forward<Exp>(exp).error()));
1310
332k
    }
1311
332k
}
auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::eof_error>, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<char const*, scn::v3::impl::eof_error>&&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Line
Count
Source
1293
4.48k
{
1294
4.48k
    if constexpr (std::is_void_v<Ret>) {
1295
4.48k
        using result = expected<expected_value_type<Exp>, monostate>;
1296
4.48k
        if (SCN_LIKELY(exp.has_value())) {
1297
4.48k
            return result(*std::forward<Exp>(exp));
1298
4.48k
        }
1299
1300
4.48k
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1301
4.48k
        return result(unexpect, monostate{});
1302
4.48k
    }
1303
4.48k
    else {
1304
4.48k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1305
4.48k
        return SCN_LIKELY(exp.has_value())
1306
4.48k
                   ? result(*std::forward<Exp>(exp))
1307
4.48k
                   : result(unexpect,
1308
172
                            trivial_invoke(std::forward<F>(f),
1309
172
                                           std::forward<Exp>(exp).error()));
1310
4.48k
    }
1311
4.48k
}
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<char const*, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<char const*, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<char const*, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error> const&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::scan_error>(scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>&, scn::v3::scan_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}, (void*)0, scn::v3::scan_error>(scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error> const&, scn::v3::impl::map_parse_error_to_scan_error(scn::v3::scan_error::code, char const*)::{lambda(scn::v3::impl::parse_error)#1}&&)
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<char const*, scn::v3::impl::eof_error> const&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
Unexecuted instantiation: auto scn::v3::detail::transform_error_impl<scn::v3::expected<char const*, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error), (void*)0, scn::v3::impl::parse_error>(scn::v3::expected<char const*, scn::v3::impl::eof_error>&, scn::v3::impl::parse_error (&)(scn::v3::impl::eof_error))
1312
template <typename Exp,
1313
          typename F,
1314
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1315
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1316
                                                 SCN_DECLVAL(Exp).error()))>
1317
constexpr auto transform_error_impl(Exp&& exp, F&& f)
1318
{
1319
    if constexpr (std::is_void_v<Ret>) {
1320
        using result = expected<expected_value_type<Exp>, monostate>;
1321
        if (SCN_LIKELY(exp.has_value())) {
1322
            return result();
1323
        }
1324
1325
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1326
        return result(unexpect, monostate{});
1327
    }
1328
    else {
1329
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1330
        return SCN_LIKELY(exp.has_value())
1331
                   ? result()
1332
                   : result(unexpect,
1333
                            trivial_invoke(std::forward<F>(f),
1334
                                           std::forward<Exp>(exp).error()));
1335
    }
1336
}
1337
1338
template <class T, class E, class U, class G, class UR, class GR>
1339
using enable_from_other =
1340
    std::enable_if_t<std::is_constructible_v<T, UR> &&
1341
                     std::is_constructible_v<E, GR> &&
1342
                     !std::is_constructible_v<T, expected<U, G>&> &&
1343
                     !std::is_constructible_v<T, expected<U, G>&&> &&
1344
                     !std::is_constructible_v<T, const expected<U, G>&> &&
1345
                     !std::is_constructible_v<T, const expected<U, G>&&> &&
1346
                     !std::is_convertible_v<expected<U, G>&, T> &&
1347
                     !std::is_convertible_v<expected<U, G>&&, T> &&
1348
                     !std::is_convertible_v<const expected<U, G>&, T> &&
1349
                     !std::is_convertible_v<const expected<U, G>&&, T>>;
1350
}  // namespace detail
1351
1352
template <typename T, typename E>
1353
class SCN_TRIVIAL_ABI expected
1354
    : private detail::expected_operations_base<T, E>,
1355
      private detail::expected_delete_ctor_base<T, E>,
1356
      private detail::expected_delete_assign_base<T, E>,
1357
      private detail::expected_default_ctor_base<T, E> {
1358
    using base = detail::expected_operations_base<T, E>;
1359
    using ctor_base = detail::expected_default_ctor_base<T, E>;
1360
1361
    static_assert(std::is_void_v<T> || std::is_destructible_v<T>,
1362
                  "T must be void or Destructible");
1363
    static_assert(std::is_destructible_v<E>, "E must be Destructible");
1364
1365
    static_assert(!std::is_same_v<std::remove_cv_t<T>, std::in_place_t>);
1366
    static_assert(!std::is_same_v<std::remove_cv_t<T>, unexpect_t>);
1367
    static_assert(!std::is_same_v<std::remove_cv_t<T>, unexpected<E>>);
1368
1369
public:
1370
    using value_type = T;
1371
    using error_type = E;
1372
    using unexpected_type = unexpected<E>;
1373
1374
    template <typename U>
1375
    using rebind = expected<U, error_type>;
1376
1377
    // Special member functions are defaulted, implementations provided
1378
    // by base classes
1379
1380
    constexpr expected() = default;
1381
1382
    constexpr expected(const expected&) = default;
1383
    constexpr expected(expected&&) = default;
1384
    constexpr expected& operator=(const expected&) = default;
1385
    constexpr expected& operator=(expected&&) = default;
1386
1387
    ~expected() = default;
1388
1389
    /**
1390
     * Construct an expected value.
1391
     * Intentionally non-explicit, to make constructing an expected
1392
     * value as transparent as possible.
1393
     */
1394
    template <typename U = value_type,
1395
              typename = std::enable_if_t<std::is_convertible_v<U, value_type>>>
1396
    SCN_IMPLICIT constexpr expected(U&& val) noexcept(
1397
        std::is_nothrow_constructible_v<base, std::in_place_t, U&&>)
1398
        : base(std::in_place, std::forward<U>(val)),
1399
          ctor_base(detail::non_default_ctor_tag_t{})
1400
566M
    {
1401
566M
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
1400
4.39M
    {
1401
4.39M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>&&)
Line
Count
Source
1400
204
    {
1401
204
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>&&)
Line
Count
Source
1400
382k
    {
1401
382k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>&&)
Line
Count
Source
1400
324k
    {
1401
324k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>&&)
Line
Count
Source
1400
711k
    {
1401
711k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>&&)
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
149k
    {
1401
149k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
1400
1.09k
    {
1401
1.09k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Line
Count
Source
1400
149k
    {
1401
149k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
1400
36.6M
    {
1401
36.6M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>&&)
Line
Count
Source
1400
12
    {
1401
12
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>&&)
Line
Count
Source
1400
711
    {
1401
711
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>&&)
Line
Count
Source
1400
564
    {
1401
564
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>&&)
Line
Count
Source
1400
8.43k
    {
1401
8.43k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>&&)
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
22
    {
1401
22
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
1400
18.2M
    {
1401
18.2M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Line
Count
Source
1400
18.2M
    {
1401
18.2M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
1400
14.3M
    {
1401
14.3M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
1400
37.2M
    {
1401
37.2M
    }
scn::v3::expected<char const*, scn::v3::scan_error>::expected<char const*, void>(char const*&&)
Line
Count
Source
1400
21.3M
    {
1401
21.3M
    }
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Line
Count
Source
1400
74.4M
    {
1401
74.4M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
1400
20.8M
    {
1401
20.8M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, void>(std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>&&)
Line
Count
Source
1400
6.33M
    {
1401
6.33M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator&, void>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator&)
Line
Count
Source
1400
1.97M
    {
1401
1.97M
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
4.51M
    {
1401
4.51M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
1400
11.7M
    {
1401
11.7M
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>&&)
Line
Count
Source
1400
2.16M
    {
1401
2.16M
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>&&)
Line
Count
Source
1400
2.16M
    {
1401
2.16M
    }
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
311k
    {
1401
311k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator&, void>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator&)
Line
Count
Source
1400
3.21M
    {
1401
3.21M
    }
scn::v3::expected<char const*, scn::v3::impl::eof_error>::expected<char const*, void>(char const*&&)
Line
Count
Source
1400
10.6M
    {
1401
10.6M
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
1400
15.8k
    {
1401
15.8k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
1400
8.42k
    {
1401
8.42k
    }
scn::v3::expected<std::__1::pair<char const*, long>, scn::v3::scan_error>::expected<std::__1::pair<char const*, long>, void>(std::__1::pair<char const*, long>&&)
Line
Count
Source
1400
6.45M
    {
1401
6.45M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
2.95k
    {
1401
2.95k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
1400
4.10k
    {
1401
4.10k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Line
Count
Source
1400
2.20k
    {
1401
2.20k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Line
Count
Source
1400
2.20k
    {
1401
2.20k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::expected<char const*, scn::v3::impl::parse_error>::expected<char const*&, void>(char const*&)
Line
Count
Source
1400
1.57M
    {
1401
1.57M
    }
scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, void>(std::__1::pair<char const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
4.40M
    {
1401
4.40M
    }
scn::v3::expected<char const*, scn::v3::impl::parse_error>::expected<char const*, void>(char const*&&)
Line
Count
Source
1400
946k
    {
1401
946k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, void>(scn::v3::impl::parse_integer_prefix_result<char const*>&&)
Line
Count
Source
1400
2.16M
    {
1401
2.16M
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, void>(scn::v3::impl::parse_integer_prefix_result<char const*>&&)
Line
Count
Source
1400
2.16M
    {
1401
2.16M
    }
scn::v3::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
309k
    {
1401
309k
    }
scn::v3::expected<char const*, scn::v3::scan_error>::expected<char const*&, void>(char const*&)
Line
Count
Source
1400
3.25M
    {
1401
3.25M
    }
scn::v3::expected<long, scn::v3::scan_error>::expected<long, void>(long&&)
Line
Count
Source
1400
71.7M
    {
1401
71.7M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
2.13M
    {
1401
2.13M
    }
scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
744
    {
1401
744
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, void>(std::__1::pair<char const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
2.17M
    {
1401
2.17M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&)
scn::v3::expected<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error>::expected<std::__1::regex_constants::syntax_option_type, void>(std::__1::regex_constants::syntax_option_type&&)
Line
Count
Source
1400
17.3k
    {
1401
17.3k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&, void>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
1400
794
    {
1401
794
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&)
Line
Count
Source
1400
528
    {
1401
528
    }
scn::v3::expected<char const*, scn::v3::scan_error>::expected<char const* const&, void>(char const* const&)
Line
Count
Source
1400
8.15k
    {
1401
8.15k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
1400
20.4M
    {
1401
20.4M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, void>(std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>&&)
Line
Count
Source
1400
15.1M
    {
1401
15.1M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Line
Count
Source
1400
4.81k
    {
1401
4.81k
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
588k
    {
1401
588k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
1400
836k
    {
1401
836k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Line
Count
Source
1400
351k
    {
1401
351k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Line
Count
Source
1400
351k
    {
1401
351k
    }
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
724
    {
1401
724
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Line
Count
Source
1400
7.33M
    {
1401
7.33M
    }
scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Line
Count
Source
1400
38.7M
    {
1401
38.7M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
scn::v3::expected<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error>::expected<std::__1::pair<wchar_t const*, long>, void>(std::__1::pair<wchar_t const*, long>&&)
Line
Count
Source
1400
29.7M
    {
1401
29.7M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::expected<wchar_t const*&, void>(wchar_t const*&)
Line
Count
Source
1400
3.84k
    {
1401
3.84k
    }
scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, void>(std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
591k
    {
1401
591k
    }
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Line
Count
Source
1400
822k
    {
1401
822k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, void>(scn::v3::impl::parse_integer_prefix_result<wchar_t const*>&&)
Line
Count
Source
1400
354k
    {
1401
354k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, void>(scn::v3::impl::parse_integer_prefix_result<wchar_t const*>&&)
Line
Count
Source
1400
354k
    {
1401
354k
    }
scn::v3::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
724
    {
1401
724
    }
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::expected<wchar_t const*&, void>(wchar_t const*&)
Line
Count
Source
1400
14.6M
    {
1401
14.6M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&)
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
234k
    {
1401
234k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, void>(std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, void>(std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>&&)
Line
Count
Source
1400
236k
    {
1401
236k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, void>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
1400
30
    {
1401
30
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&, void>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&)
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::expected<wchar_t const* const&, void>(wchar_t const* const&)
Line
Count
Source
1400
60
    {
1401
60
    }
scn::v3::expected<long, scn::v3::scan_error>::expected<int, void>(int&&)
Line
Count
Source
1400
235k
    {
1401
235k
    }
Unexecuted instantiation: scn::v3::expected<wchar_t, scn::v3::scan_error>::expected<wchar_t, void>(wchar_t&&)
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>&&)
Line
Count
Source
1400
296k
    {
1401
296k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>&&)
Line
Count
Source
1400
283k
    {
1401
283k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>&&)
Line
Count
Source
1400
390k
    {
1401
390k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>&&)
Line
Count
Source
1400
328k
    {
1401
328k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, void>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&&)
Line
Count
Source
1400
4.21M
    {
1401
4.21M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>&&)
Line
Count
Source
1400
298k
    {
1401
298k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>&&)
Line
Count
Source
1400
285k
    {
1401
285k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>&&)
Line
Count
Source
1400
383k
    {
1401
383k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>&&)
Line
Count
Source
1400
326k
    {
1401
326k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>&&)
Line
Count
Source
1400
390k
    {
1401
390k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>&&)
Line
Count
Source
1400
330k
    {
1401
330k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>&&)
Line
Count
Source
1400
595
    {
1401
595
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>&&)
Line
Count
Source
1400
500
    {
1401
500
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>&&)
Line
Count
Source
1400
864
    {
1401
864
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>&&)
Line
Count
Source
1400
694
    {
1401
694
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, void>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&&)
Line
Count
Source
1400
18.3M
    {
1401
18.3M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>&&)
Line
Count
Source
1400
595
    {
1401
595
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>&&)
Line
Count
Source
1400
500
    {
1401
500
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>&&)
Line
Count
Source
1400
711
    {
1401
711
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>&&)
Line
Count
Source
1400
564
    {
1401
564
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>&&)
Line
Count
Source
1400
864
    {
1401
864
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>&&)
Line
Count
Source
1400
694
    {
1401
694
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1400
150k
    {
1401
150k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
1400
18.2M
    {
1401
18.2M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>&&)
Line
Count
Source
1400
654k
    {
1401
654k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>&&)
Line
Count
Source
1400
722k
    {
1401
722k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>&&)
Line
Count
Source
1400
643k
    {
1401
643k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>&&)
Line
Count
Source
1400
700k
    {
1401
700k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>&&)
Line
Count
Source
1400
709k
    {
1401
709k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>&&)
Line
Count
Source
1400
8.36k
    {
1401
8.36k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>&&)
Line
Count
Source
1400
8.54k
    {
1401
8.54k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>&&)
Line
Count
Source
1400
8.33k
    {
1401
8.33k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>&&)
Line
Count
Source
1400
8.40k
    {
1401
8.40k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error>::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, void>(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>&&)
Line
Count
Source
1400
8.52k
    {
1401
8.52k
    }
1402
1403
    /// Construct an expected value directly in-place
1404
    template <typename... Args,
1405
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
1406
    explicit constexpr expected(std::in_place_t, Args&&... args) noexcept(
1407
        std::is_nothrow_constructible_v<base, std::in_place_t, Args&&...>)
1408
        : base(std::in_place, std::forward<Args>(args)...),
1409
          ctor_base(detail::non_default_ctor_tag_t{})
1410
    {
1411
    }
1412
1413
    template <typename G = E,
1414
              std::enable_if_t<std::is_constructible_v<E, const G&>>* = nullptr,
1415
              std::enable_if_t<!std::is_convertible_v<const G&, E>>* = nullptr>
1416
    explicit constexpr expected(const unexpected<G>& e) noexcept(
1417
        std::is_nothrow_constructible_v<base, unexpect_t, const G&>)
1418
        : base(unexpect, e.error()), ctor_base(detail::non_default_ctor_tag_t{})
1419
    {
1420
    }
1421
    template <typename G = E,
1422
              std::enable_if_t<std::is_constructible_v<E, const G&>>* = nullptr,
1423
              std::enable_if_t<std::is_convertible_v<const G&, E>>* = nullptr>
1424
    SCN_IMPLICIT constexpr expected(const unexpected<G>& e) noexcept(
1425
        std::is_nothrow_constructible_v<base, unexpect_t, const G&>)
1426
        : base(unexpect, e.error()), ctor_base(detail::non_default_ctor_tag_t{})
1427
    {
1428
    }
1429
1430
    template <typename G = E,
1431
              std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
1432
              std::enable_if_t<!std::is_convertible_v<G&&, E>>* = nullptr>
1433
    explicit constexpr expected(unexpected<G>&& e) noexcept(
1434
        std::is_nothrow_constructible_v<base, unexpect_t, G&&>)
1435
        : base(unexpect, std::move(e.error())),
1436
          ctor_base(detail::non_default_ctor_tag_t{})
1437
    {
1438
    }
1439
    template <typename G = E,
1440
              std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
1441
              std::enable_if_t<std::is_convertible_v<G&&, E>>* = nullptr>
1442
    SCN_IMPLICIT constexpr expected(unexpected<G>&& e) noexcept(
1443
        std::is_nothrow_constructible_v<base, unexpect_t, G&&>)
1444
        : base(unexpect, std::move(e.error())),
1445
          ctor_base(detail::non_default_ctor_tag_t{})
1446
51.3M
    {
1447
51.3M
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
498k
    {
1447
498k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
14.4k
    {
1447
14.4k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
55.5k
    {
1447
55.5k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
55.5k
    {
1447
55.5k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
49.9k
    {
1447
49.9k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
14.6k
    {
1447
14.6k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
14.6k
    {
1447
14.6k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
23.1k
    {
1447
23.1k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
13.6k
    {
1447
13.6k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
23.1k
    {
1447
23.1k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
1.00M
    {
1447
1.00M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
29.3k
    {
1447
29.3k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
111k
    {
1447
111k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
111k
    {
1447
111k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
99.9k
    {
1447
99.9k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
29.3k
    {
1447
29.3k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
29.3k
    {
1447
29.3k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
29.3k
    {
1447
29.3k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
48.3k
    {
1447
48.3k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
48.3k
    {
1447
48.3k
    }
scn::v3::expected<char const*, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
899k
    {
1447
899k
    }
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
1.45M
    {
1447
1.45M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
558k
    {
1447
558k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
153k
    {
1447
153k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
41.1k
    {
1447
41.1k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Line
Count
Source
1446
2.19M
    {
1447
2.19M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Line
Count
Source
1446
16.6M
    {
1447
16.6M
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
491
    {
1447
491
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
8.86k
    {
1447
8.86k
    }
scn::v3::expected<char const*, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
60.6k
    {
1447
60.6k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
350
    {
1447
350
    }
scn::v3::expected<std::__1::pair<char const*, long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
37.9k
    {
1447
37.9k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
8.87k
    {
1447
8.87k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Line
Count
Source
1446
1.02k
    {
1447
1.02k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Line
Count
Source
1446
11.5k
    {
1447
11.5k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
28
    {
1447
28
    }
scn::v3::expected<char const*, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Line
Count
Source
1446
2.21M
    {
1447
2.21M
    }
scn::v3::expected<char const*, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Line
Count
Source
1446
12.9M
    {
1447
12.9M
    }
scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
156
    {
1447
156
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
9.28k
    {
1447
9.28k
    }
scn::v3::expected<long, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
2.91M
    {
1447
2.91M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
1.23M
    {
1447
1.23M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
83.4k
    {
1447
83.4k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
5.04k
    {
1447
5.04k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Line
Count
Source
1446
309k
    {
1447
309k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Line
Count
Source
1446
2.16M
    {
1447
2.16M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
46.0k
    {
1447
46.0k
    }
scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Line
Count
Source
1446
87.2k
    {
1447
87.2k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
6.66k
    {
1447
6.66k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error>&&)
Line
Count
Source
1446
310k
    {
1447
310k
    }
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error::code, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::parse_error::code>&&)
Line
Count
Source
1446
1.71M
    {
1447
1.71M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::expected<scn::v3::impl::eof_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::impl::eof_error>&&)
scn::v3::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
46.0k
    {
1447
46.0k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
360k
    {
1447
360k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
40.8k
    {
1447
40.8k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
721k
    {
1447
721k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
81.7k
    {
1447
81.7k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
9.50k
    {
1447
9.50k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
19.0k
    {
1447
19.0k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
35.2k
    {
1447
35.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
35.2k
    {
1447
35.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
35.2k
    {
1447
35.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
35.2k
    {
1447
35.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
35.2k
    {
1447
35.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
70.5k
    {
1447
70.5k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
70.5k
    {
1447
70.5k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
70.5k
    {
1447
70.5k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
70.5k
    {
1447
70.5k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error>::expected<scn::v3::scan_error, (void*)0, (void*)0>(scn::v3::unexpected<scn::v3::scan_error>&&)
Line
Count
Source
1446
70.5k
    {
1447
70.5k
    }
1448
1449
    /// Construct an unexpected value directly in-place
1450
    template <typename... Args,
1451
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
1452
    explicit constexpr expected(unexpect_t, Args&&... args) noexcept(
1453
        std::is_nothrow_constructible_v<base, unexpect_t, Args&&...>)
1454
        : base(unexpect, std::forward<Args>(args)...),
1455
          ctor_base(detail::non_default_ctor_tag_t{})
1456
5.64M
    {
1457
5.64M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
1456
2.20M
    {
1457
2.20M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
1456
752k
    {
1457
752k
    }
scn::v3::expected<char const*, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
1456
2.12M
    {
1457
2.12M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
1456
70.6k
    {
1457
70.6k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
1456
3.66k
    {
1457
3.66k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
1456
278
    {
1457
278
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
1456
74.1k
    {
1457
74.1k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Line
Count
Source
1456
344k
    {
1457
344k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
1456
74.2k
    {
1457
74.2k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
Unexecuted instantiation: scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::expected<scn::v3::scan_error, void>(scn::v3::unexpect_t, scn::v3::scan_error&&)
scn::v3::expected<char const*, scn::v3::impl::parse_error>::expected<scn::v3::impl::parse_error, void>(scn::v3::unexpect_t, scn::v3::impl::parse_error&&)
Line
Count
Source
1456
172
    {
1457
172
    }
1458
1459
    template <
1460
        typename U,
1461
        typename G,
1462
        std::enable_if_t<!(std::is_convertible_v<const U&, T> &&
1463
                           std::is_convertible_v<const G&, E>)>* = nullptr,
1464
        detail::enable_from_other<T, E, U, G, const U&, const G&>* = nullptr>
1465
    explicit constexpr expected(const expected<U, G>& other) noexcept(
1466
        std::is_nothrow_constructible_v<T, const U&> &&
1467
        std::is_nothrow_constructible_v<E, const G&>)
1468
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1469
    {
1470
        if (other.has_value()) {
1471
            this->construct(*other);
1472
        }
1473
        else {
1474
            this->construct_unexpected(other.error());
1475
        }
1476
    }
1477
    template <
1478
        typename U,
1479
        typename G,
1480
        std::enable_if_t<(std::is_convertible_v<const U&, T> &&
1481
                          std::is_convertible_v<const G&, E>)>* = nullptr,
1482
        detail::enable_from_other<T, E, U, G, const U&, const G&>* = nullptr>
1483
    constexpr expected(const expected<U, G>& other) noexcept(
1484
        std::is_nothrow_constructible_v<T, const U&> &&
1485
        std::is_nothrow_constructible_v<E, const G&>)
1486
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1487
    {
1488
        if (other.has_value()) {
1489
            this->construct(*other);
1490
        }
1491
        else {
1492
            this->construct_unexpected(other.error());
1493
        }
1494
    }
1495
1496
    template <typename U,
1497
              typename G,
1498
              std::enable_if_t<!(std::is_convertible_v<U&&, T> &&
1499
                                 std::is_convertible_v<G&&, E>)>* = nullptr,
1500
              detail::enable_from_other<T, E, U, G, U&&, G&&>* = nullptr>
1501
    explicit constexpr expected(expected<U, G>&& other) noexcept(
1502
        std::is_nothrow_constructible_v<T, U&&> &&
1503
        std::is_nothrow_constructible_v<E, G&&>)
1504
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1505
    {
1506
        if (other.has_value()) {
1507
            this->construct(std::move(*other));
1508
        }
1509
        else {
1510
            this->construct_unexpected(std::move(other.error()));
1511
        }
1512
    }
1513
    template <typename U,
1514
              typename G,
1515
              std::enable_if_t<(std::is_convertible_v<U&&, T> &&
1516
                                std::is_convertible_v<G&&, E>)>* = nullptr,
1517
              detail::enable_from_other<T, E, U, G, U&&, G&&>* = nullptr>
1518
    constexpr expected(expected<U, G>&& other) noexcept(
1519
        std::is_nothrow_constructible_v<T, U&&> &&
1520
        std::is_nothrow_constructible_v<E, G&&>)
1521
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1522
    {
1523
        if (other.has_value()) {
1524
            this->construct(std::move(*other));
1525
        }
1526
        else {
1527
            this->construct_unexpected(std::move(other.error()));
1528
        }
1529
    }
1530
1531
    template <typename U = value_type,
1532
              typename = std::enable_if_t<std::is_convertible_v<U, value_type>>>
1533
    expected& operator=(U&& val) noexcept(
1534
        noexcept(assign_value(std::forward<U>(val))))
1535
    {
1536
        assign_value(std::forward<U>(val));
1537
        return *this;
1538
    }
1539
1540
    expected& operator=(const unexpected_type& unex) noexcept(
1541
        noexcept(assign_unexpected(unex)))
1542
    {
1543
        assign_unexpected(unex);
1544
        return *this;
1545
    }
1546
    expected& operator=(unexpected_type&& unex) noexcept(
1547
        noexcept(assign_unexpected(std::move(unex))))
1548
    {
1549
        assign_unexpected(std::move(unex));
1550
        return *this;
1551
    }
1552
1553
    /// Destroys the contained value, and then initializes the expected
1554
    /// value directly in-place.
1555
    template <typename... Args,
1556
              std::enable_if_t<std::is_constructible_v<T, Args...>>* = nullptr>
1557
    decltype(auto) emplace(Args&&... args) noexcept(
1558
        std::is_nothrow_constructible_v<T, Args...>)
1559
    {
1560
        emplace_impl(std::forward<Args>(args)...);
1561
        if constexpr (!std::is_void_v<T>) {
1562
            return this->get_value();
1563
        }
1564
    }
1565
1566
    using base::has_value;
1567
    constexpr explicit operator bool() const noexcept
1568
570M
    {
1569
570M
        return has_value();
1570
570M
    }
scn::v3::expected<long, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
98.4M
    {
1569
98.4M
        return has_value();
1570
98.4M
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
4.89M
    {
1569
4.89M
        return has_value();
1570
4.89M
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
37.6M
    {
1569
37.6M
        return has_value();
1570
37.6M
    }
scn::v3::expected<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
17.3k
    {
1569
17.3k
        return has_value();
1570
17.3k
    }
Unexecuted instantiation: scn::v3::expected<wchar_t, scn::v3::scan_error>::operator bool() const
scn::v3::expected<char const*, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
29.7M
    {
1569
29.7M
        return has_value();
1570
29.7M
    }
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
91.1M
    {
1569
91.1M
        return has_value();
1570
91.1M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
8.93M
    {
1569
8.93M
        return has_value();
1570
8.93M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator bool() const
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
6.37M
    {
1569
6.37M
        return has_value();
1570
6.37M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::operator bool() const
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::operator bool() const
Line
Count
Source
1568
33.1M
    {
1569
33.1M
        return has_value();
1570
33.1M
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
2.38M
    {
1569
2.38M
        return has_value();
1570
2.38M
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
2.16M
    {
1569
2.16M
        return has_value();
1570
2.16M
    }
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
320k
    {
1569
320k
        return has_value();
1570
320k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
22.3M
    {
1569
22.3M
        return has_value();
1570
22.3M
    }
scn::v3::expected<char const*, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
6.02M
    {
1569
6.02M
        return has_value();
1570
6.02M
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
4.83k
    {
1569
4.83k
        return has_value();
1570
4.83k
    }
scn::v3::expected<std::__1::pair<char const*, long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
6.49M
    {
1569
6.49M
        return has_value();
1570
6.49M
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::operator bool() const
Line
Count
Source
1568
15.4k
    {
1569
15.4k
        return has_value();
1570
15.4k
    }
scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
2.20k
    {
1569
2.20k
        return has_value();
1570
2.20k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
2.20k
    {
1569
2.20k
        return has_value();
1570
2.20k
    }
scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
28
    {
1569
28
        return has_value();
1570
28
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
22.2k
    {
1569
22.2k
        return has_value();
1570
22.2k
    }
scn::v3::expected<char const*, scn::v3::impl::parse_error>::operator bool() const
Line
Count
Source
1568
19.8M
    {
1569
19.8M
        return has_value();
1570
19.8M
    }
scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
2.23M
    {
1569
2.23M
        return has_value();
1570
2.23M
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
2.16M
    {
1569
2.16M
        return has_value();
1570
2.16M
    }
scn::v3::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
319k
    {
1569
319k
        return has_value();
1570
319k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
2.13M
    {
1569
2.13M
        return has_value();
1570
2.13M
    }
scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
744
    {
1569
744
        return has_value();
1570
744
    }
scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
2.17M
    {
1569
2.17M
        return has_value();
1570
2.17M
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
730k
    {
1569
730k
        return has_value();
1570
730k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator bool() const
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
15.1M
    {
1569
15.1M
        return has_value();
1570
15.1M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::operator bool() const
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::operator bool() const
Line
Count
Source
1568
3.31M
    {
1569
3.31M
        return has_value();
1570
3.31M
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
353k
    {
1569
353k
        return has_value();
1570
353k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
351k
    {
1569
351k
        return has_value();
1570
351k
    }
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
46.7k
    {
1569
46.7k
        return has_value();
1570
46.7k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
46.8M
    {
1569
46.8M
        return has_value();
1570
46.8M
    }
scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
702k
    {
1569
702k
        return has_value();
1570
702k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::operator bool() const
scn::v3::expected<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
29.7M
    {
1569
29.7M
        return has_value();
1570
29.7M
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::operator bool() const
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::operator bool() const
Line
Count
Source
1568
3.15M
    {
1569
3.15M
        return has_value();
1570
3.15M
    }
scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator bool() const
Line
Count
Source
1568
355k
    {
1569
355k
        return has_value();
1570
355k
    }
scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
354k
    {
1569
354k
        return has_value();
1570
354k
    }
scn::v3::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
46.7k
    {
1569
46.7k
        return has_value();
1570
46.7k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
234k
    {
1569
234k
        return has_value();
1570
234k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
236k
    {
1569
236k
        return has_value();
1570
236k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
337k
    {
1569
337k
        return has_value();
1570
337k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
324k
    {
1569
324k
        return has_value();
1570
324k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
423k
    {
1569
423k
        return has_value();
1570
423k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
365k
    {
1569
365k
        return has_value();
1570
365k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
431k
    {
1569
431k
        return has_value();
1570
431k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
369k
    {
1569
369k
        return has_value();
1570
369k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
4.57M
    {
1569
4.57M
        return has_value();
1570
4.57M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
339k
    {
1569
339k
        return has_value();
1570
339k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
325k
    {
1569
325k
        return has_value();
1570
325k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
424k
    {
1569
424k
        return has_value();
1570
424k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
367k
    {
1569
367k
        return has_value();
1570
367k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
431k
    {
1569
431k
        return has_value();
1570
431k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
371k
    {
1569
371k
        return has_value();
1570
371k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.3k
    {
1569
82.3k
        return has_value();
1570
82.3k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.2k
    {
1569
82.2k
        return has_value();
1570
82.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.4k
    {
1569
82.4k
        return has_value();
1570
82.4k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.2k
    {
1569
82.2k
        return has_value();
1570
82.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.5k
    {
1569
82.5k
        return has_value();
1570
82.5k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.4k
    {
1569
82.4k
        return has_value();
1570
82.4k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
19.0M
    {
1569
19.0M
        return has_value();
1570
19.0M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.3k
    {
1569
82.3k
        return has_value();
1570
82.3k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.2k
    {
1569
82.2k
        return has_value();
1570
82.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.4k
    {
1569
82.4k
        return has_value();
1570
82.4k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.2k
    {
1569
82.2k
        return has_value();
1570
82.2k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.5k
    {
1569
82.5k
        return has_value();
1570
82.5k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
82.4k
    {
1569
82.4k
        return has_value();
1570
82.4k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
157k
    {
1569
157k
        return has_value();
1570
157k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
157k
    {
1569
157k
        return has_value();
1570
157k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
159k
    {
1569
159k
        return has_value();
1570
159k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
18.3M
    {
1569
18.3M
        return has_value();
1570
18.3M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
18.3M
    {
1569
18.3M
        return has_value();
1570
18.3M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
18.3M
    {
1569
18.3M
        return has_value();
1570
18.3M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
689k
    {
1569
689k
        return has_value();
1570
689k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
746k
    {
1569
746k
        return has_value();
1570
746k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
757k
    {
1569
757k
        return has_value();
1570
757k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
678k
    {
1569
678k
        return has_value();
1570
678k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
735k
    {
1569
735k
        return has_value();
1570
735k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
745k
    {
1569
745k
        return has_value();
1570
745k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
78.9k
    {
1569
78.9k
        return has_value();
1570
78.9k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
78.9k
    {
1569
78.9k
        return has_value();
1570
78.9k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
79.1k
    {
1569
79.1k
        return has_value();
1570
79.1k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
78.9k
    {
1569
78.9k
        return has_value();
1570
78.9k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
78.9k
    {
1569
78.9k
        return has_value();
1570
78.9k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error>::operator bool() const
Line
Count
Source
1568
79.0k
    {
1569
79.0k
        return has_value();
1570
79.0k
    }
1571
1572
    /// Get the unexpected value, if one is contained in *this
1573
    constexpr error_type& error() & noexcept
1574
29.0M
    {
1575
29.0M
        SCN_EXPECT(!has_value());
1576
29.0M
        return this->get_unexpected().error();
1577
29.0M
    }
scn::v3::expected<long, scn::v3::scan_error>::error() &
Line
Count
Source
1574
2.91M
    {
1575
2.91M
        SCN_EXPECT(!has_value());
1576
2.91M
        return this->get_unexpected().error();
1577
2.91M
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
498k
    {
1575
498k
        SCN_EXPECT(!has_value());
1576
498k
        return this->get_unexpected().error();
1577
498k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
1.00M
    {
1575
1.00M
        SCN_EXPECT(!has_value());
1576
1.00M
        return this->get_unexpected().error();
1577
1.00M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<wchar_t, scn::v3::scan_error>::error() &
scn::v3::expected<char const*, scn::v3::scan_error>::error() &
Line
Count
Source
1574
977k
    {
1575
977k
        SCN_EXPECT(!has_value());
1576
977k
        return this->get_unexpected().error();
1577
977k
    }
scn::v3::expected<wchar_t const*, scn::v3::scan_error>::error() &
Line
Count
Source
1574
1.56M
    {
1575
1.56M
        SCN_EXPECT(!has_value());
1576
1.56M
        return this->get_unexpected().error();
1577
1.56M
    }
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
41.1k
    {
1575
41.1k
        SCN_EXPECT(!has_value());
1576
41.1k
        return this->get_unexpected().error();
1577
41.1k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::error() &
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::error() &
Line
Count
Source
1574
28.3k
    {
1575
28.3k
        SCN_EXPECT(!has_value());
1576
28.3k
        return this->get_unexpected().error();
1577
28.3k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::error() &
Line
Count
Source
1574
7.89M
    {
1575
7.89M
        SCN_EXPECT(!has_value());
1576
7.89M
        return this->get_unexpected().error();
1577
7.89M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error>::error() &
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
8.86k
    {
1575
8.86k
        SCN_EXPECT(!has_value());
1576
8.86k
        return this->get_unexpected().error();
1577
8.86k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::error() &
Line
Count
Source
1574
748k
    {
1575
748k
        SCN_EXPECT(!has_value());
1576
748k
        return this->get_unexpected().error();
1577
748k
    }
scn::v3::expected<std::__1::pair<char const*, long>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
37.9k
    {
1575
37.9k
        SCN_EXPECT(!has_value());
1576
37.9k
        return this->get_unexpected().error();
1577
37.9k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::error() &
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::error() &
Line
Count
Source
1574
5.46k
    {
1575
5.46k
        SCN_EXPECT(!has_value());
1576
5.46k
        return this->get_unexpected().error();
1577
5.46k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error>::error() &
scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
28
    {
1575
28
        SCN_EXPECT(!has_value());
1576
28
        return this->get_unexpected().error();
1577
28
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
11.7k
    {
1575
11.7k
        SCN_EXPECT(!has_value());
1576
11.7k
        return this->get_unexpected().error();
1577
11.7k
    }
scn::v3::expected<char const*, scn::v3::impl::eof_error>::error() &
Line
Count
Source
1574
7.39k
    {
1575
7.39k
        SCN_EXPECT(!has_value());
1576
7.39k
        return this->get_unexpected().error();
1577
7.39k
    }
scn::v3::expected<char const*, scn::v3::impl::parse_error>::error() &
Line
Count
Source
1574
7.78M
    {
1575
7.78M
        SCN_EXPECT(!has_value());
1576
7.78M
        return this->get_unexpected().error();
1577
7.78M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error>::error() &
scn::v3::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
9.28k
    {
1575
9.28k
        SCN_EXPECT(!has_value());
1576
9.28k
        return this->get_unexpected().error();
1577
9.28k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
5.04k
    {
1575
5.04k
        SCN_EXPECT(!has_value());
1576
5.04k
        return this->get_unexpected().error();
1577
5.04k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::error() &
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::error() &
Line
Count
Source
1574
780
    {
1575
780
        SCN_EXPECT(!has_value());
1576
780
        return this->get_unexpected().error();
1577
780
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::error() &
Line
Count
Source
1574
1.33M
    {
1575
1.33M
        SCN_EXPECT(!has_value());
1576
1.33M
        return this->get_unexpected().error();
1577
1.33M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error>::error() &
scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
46.0k
    {
1575
46.0k
        SCN_EXPECT(!has_value());
1576
46.0k
        return this->get_unexpected().error();
1577
46.0k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::error() &
Line
Count
Source
1574
1.74M
    {
1575
1.74M
        SCN_EXPECT(!has_value());
1576
1.74M
        return this->get_unexpected().error();
1577
1.74M
    }
scn::v3::expected<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error>::error() &
Line
Count
Source
1574
6.66k
    {
1575
6.66k
        SCN_EXPECT(!has_value());
1576
6.66k
        return this->get_unexpected().error();
1577
6.66k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::error() &
scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::error() &
Line
Count
Source
1574
348
    {
1575
348
        SCN_EXPECT(!has_value());
1576
348
        return this->get_unexpected().error();
1577
348
    }
scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::error() &
Line
Count
Source
1574
1.23M
    {
1575
1.23M
        SCN_EXPECT(!has_value());
1576
1.23M
        return this->get_unexpected().error();
1577
1.23M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error>::error() &
scn::v3::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
46.0k
    {
1575
46.0k
        SCN_EXPECT(!has_value());
1576
46.0k
        return this->get_unexpected().error();
1577
46.0k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::error() &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::error() &
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
360k
    {
1575
360k
        SCN_EXPECT(!has_value());
1576
360k
        return this->get_unexpected().error();
1577
360k
    }
scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::error() &
Line
Count
Source
1574
721k
    {
1575
721k
        SCN_EXPECT(!has_value());
1576
721k
        return this->get_unexpected().error();
1577
721k
    }
1578
    constexpr const error_type& error() const& noexcept
1579
0
    {
1580
0
        SCN_EXPECT(!has_value());
1581
0
        return this->get_unexpected().error();
1582
0
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<char const*, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<char const*, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::error() const &
1583
    constexpr error_type&& error() && noexcept
1584
731k
    {
1585
731k
        SCN_EXPECT(!has_value());
1586
731k
        return std::move(this->get_unexpected().error());
1587
731k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::error() &&
Line
Count
Source
1584
125k
    {
1585
125k
        SCN_EXPECT(!has_value());
1586
125k
        return std::move(this->get_unexpected().error());
1587
125k
    }
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::error() &&
Line
Count
Source
1584
82.6k
    {
1585
82.6k
        SCN_EXPECT(!has_value());
1586
82.6k
        return std::move(this->get_unexpected().error());
1587
82.6k
    }
scn::v3::expected<char const*, scn::v3::impl::eof_error>::error() &&
Line
Count
Source
1584
53.1k
    {
1585
53.1k
        SCN_EXPECT(!has_value());
1586
53.1k
        return std::move(this->get_unexpected().error());
1587
53.1k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::error() &&
scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::error() &&
Line
Count
Source
1584
80.7k
    {
1585
80.7k
        SCN_EXPECT(!has_value());
1586
80.7k
        return std::move(this->get_unexpected().error());
1587
80.7k
    }
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::error() &&
Line
Count
Source
1584
278
    {
1585
278
        SCN_EXPECT(!has_value());
1586
278
        return std::move(this->get_unexpected().error());
1587
278
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::error() &&
scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::error() &&
Line
Count
Source
1584
2.17k
    {
1585
2.17k
        SCN_EXPECT(!has_value());
1586
2.17k
        return std::move(this->get_unexpected().error());
1587
2.17k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::error() &&
scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::error() &&
Line
Count
Source
1584
300k
    {
1585
300k
        SCN_EXPECT(!has_value());
1586
300k
        return std::move(this->get_unexpected().error());
1587
300k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::error() &&
scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::error() &&
Line
Count
Source
1584
86.8k
    {
1585
86.8k
        SCN_EXPECT(!has_value());
1586
86.8k
        return std::move(this->get_unexpected().error());
1587
86.8k
    }
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::error() &&
1588
    constexpr const error_type&& error() const&& noexcept
1589
    {
1590
        SCN_EXPECT(!has_value());
1591
        return std::move(this->get_unexpected().error());
1592
    }
1593
1594
    /// Get the expected value, if one is contained in *this
1595
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1596
    constexpr U& value() & noexcept
1597
574M
    {
1598
574M
        SCN_EXPECT(has_value());
1599
574M
        return this->get_value();
1600
574M
    }
long& scn::v3::expected<long, scn::v3::scan_error>::value<long, (void*)0>() &
Line
Count
Source
1597
94.4M
    {
1598
94.4M
        SCN_EXPECT(has_value());
1599
94.4M
        return this->get_value();
1600
94.4M
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::value<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, (void*)0>() &
Line
Count
Source
1597
4.39M
    {
1598
4.39M
        SCN_EXPECT(has_value());
1599
4.39M
        return this->get_value();
1600
4.39M
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::value<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, (void*)0>() &
Line
Count
Source
1597
36.6M
    {
1598
36.6M
        SCN_EXPECT(has_value());
1599
36.6M
        return this->get_value();
1600
36.6M
    }
std::__1::regex_constants::syntax_option_type& scn::v3::expected<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error>::value<std::__1::regex_constants::syntax_option_type, (void*)0>() &
Line
Count
Source
1597
17.3k
    {
1598
17.3k
        SCN_EXPECT(has_value());
1599
17.3k
        return this->get_value();
1600
17.3k
    }
Unexecuted instantiation: wchar_t& scn::v3::expected<wchar_t, scn::v3::scan_error>::value<wchar_t, (void*)0>() &
scn::v3::detail::basic_scan_buffer<char>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::value<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &
Line
Count
Source
1597
13.6M
    {
1598
13.6M
        SCN_EXPECT(has_value());
1599
13.6M
        return this->get_value();
1600
13.6M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::value<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &
Line
Count
Source
1597
19.6M
    {
1598
19.6M
        SCN_EXPECT(has_value());
1599
19.6M
        return this->get_value();
1600
19.6M
    }
char const*& scn::v3::expected<char const*, scn::v3::scan_error>::value<char const*, (void*)0>() &
Line
Count
Source
1597
22.5M
    {
1598
22.5M
        SCN_EXPECT(has_value());
1599
22.5M
        return this->get_value();
1600
22.5M
    }
wchar_t const*& scn::v3::expected<wchar_t const*, scn::v3::scan_error>::value<wchar_t const*, (void*)0>() &
Line
Count
Source
1597
88.9M
    {
1598
88.9M
        SCN_EXPECT(has_value());
1599
88.9M
        return this->get_value();
1600
88.9M
    }
char const*& scn::v3::expected<char const*, scn::v3::impl::eof_error>::value<char const*, (void*)0>() &
Line
Count
Source
1597
5.97M
    {
1598
5.97M
        SCN_EXPECT(has_value());
1599
5.97M
        return this->get_value();
1600
5.97M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, (void*)0>() &
Line
Count
Source
1597
6.33M
    {
1598
6.33M
        SCN_EXPECT(has_value());
1599
6.33M
        return this->get_value();
1600
6.33M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
scn::v3::detail::basic_scan_buffer<char>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::value<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &
Line
Count
Source
1597
15.9M
    {
1598
15.9M
        SCN_EXPECT(has_value());
1599
15.9M
        return this->get_value();
1600
15.9M
    }
std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
4.51M
    {
1598
4.51M
        SCN_EXPECT(has_value());
1599
4.51M
        return this->get_value();
1600
4.51M
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() &
Line
Count
Source
1597
2.16M
    {
1598
2.16M
        SCN_EXPECT(has_value());
1599
2.16M
        return this->get_value();
1600
2.16M
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() &
Line
Count
Source
1597
2.16M
    {
1598
2.16M
        SCN_EXPECT(has_value());
1599
2.16M
        return this->get_value();
1600
2.16M
    }
std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Line
Count
Source
1597
311k
    {
1598
311k
        SCN_EXPECT(has_value());
1599
311k
        return this->get_value();
1600
311k
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::value<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &
Line
Count
Source
1597
15.4M
    {
1598
15.4M
        SCN_EXPECT(has_value());
1599
15.4M
        return this->get_value();
1600
15.4M
    }
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &
Line
Count
Source
1597
11.4k
    {
1598
11.4k
        SCN_EXPECT(has_value());
1599
11.4k
        return this->get_value();
1600
11.4k
    }
std::__1::pair<char const*, long>& scn::v3::expected<std::__1::pair<char const*, long>, scn::v3::scan_error>::value<std::__1::pair<char const*, long>, (void*)0>() &
Line
Count
Source
1597
6.45M
    {
1598
6.45M
        SCN_EXPECT(has_value());
1599
6.45M
        return this->get_value();
1600
6.45M
    }
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &
Line
Count
Source
1597
4.10k
    {
1598
4.10k
        SCN_EXPECT(has_value());
1599
4.10k
        return this->get_value();
1600
4.10k
    }
std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
2.95k
    {
1598
2.95k
        SCN_EXPECT(has_value());
1599
2.95k
        return this->get_value();
1600
2.95k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() &
Line
Count
Source
1597
2.20k
    {
1598
2.20k
        SCN_EXPECT(has_value());
1599
2.20k
        return this->get_value();
1600
2.20k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() &
Line
Count
Source
1597
2.20k
    {
1598
2.20k
        SCN_EXPECT(has_value());
1599
2.20k
        return this->get_value();
1600
2.20k
    }
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &
Line
Count
Source
1597
8.95k
    {
1598
8.95k
        SCN_EXPECT(has_value());
1599
8.95k
        return this->get_value();
1600
8.95k
    }
char const*& scn::v3::expected<char const*, scn::v3::impl::parse_error>::value<char const*, (void*)0>() &
Line
Count
Source
1597
3.13M
    {
1598
3.13M
        SCN_EXPECT(has_value());
1599
3.13M
        return this->get_value();
1600
3.13M
    }
std::__1::pair<char const*, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
4.40M
    {
1598
4.40M
        SCN_EXPECT(has_value());
1599
4.40M
        return this->get_value();
1600
4.40M
    }
scn::v3::impl::parse_integer_prefix_result<char const*>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() &
Line
Count
Source
1597
2.16M
    {
1598
2.16M
        SCN_EXPECT(has_value());
1599
2.16M
        return this->get_value();
1600
2.16M
    }
scn::v3::impl::parse_integer_prefix_result<char const*>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() &
Line
Count
Source
1597
2.16M
    {
1598
2.16M
        SCN_EXPECT(has_value());
1599
2.16M
        return this->get_value();
1600
2.16M
    }
std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Line
Count
Source
1597
309k
    {
1598
309k
        SCN_EXPECT(has_value());
1599
309k
        return this->get_value();
1600
309k
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &
std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
2.13M
    {
1598
2.13M
        SCN_EXPECT(has_value());
1599
2.13M
        return this->get_value();
1600
2.13M
    }
std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
744
    {
1598
744
        SCN_EXPECT(has_value());
1599
744
        return this->get_value();
1600
744
    }
std::__1::pair<char const*, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
2.17M
    {
1598
2.17M
        SCN_EXPECT(has_value());
1599
2.17M
        return this->get_value();
1600
2.17M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, (void*)0>() &
Line
Count
Source
1597
15.1M
    {
1598
15.1M
        SCN_EXPECT(has_value());
1599
15.1M
        return this->get_value();
1600
15.1M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::value<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &
Line
Count
Source
1597
868k
    {
1598
868k
        SCN_EXPECT(has_value());
1599
868k
        return this->get_value();
1600
868k
    }
std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
588k
    {
1598
588k
        SCN_EXPECT(has_value());
1599
588k
        return this->get_value();
1600
588k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() &
Line
Count
Source
1597
351k
    {
1598
351k
        SCN_EXPECT(has_value());
1599
351k
        return this->get_value();
1600
351k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() &
Line
Count
Source
1597
351k
    {
1598
351k
        SCN_EXPECT(has_value());
1599
351k
        return this->get_value();
1600
351k
    }
std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Line
Count
Source
1597
724
    {
1598
724
        SCN_EXPECT(has_value());
1599
724
        return this->get_value();
1600
724
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::value<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &
Line
Count
Source
1597
44.5M
    {
1598
44.5M
        SCN_EXPECT(has_value());
1599
44.5M
        return this->get_value();
1600
44.5M
    }
wchar_t const*& scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::value<wchar_t const*, (void*)0>() &
Line
Count
Source
1597
38.0M
    {
1598
38.0M
        SCN_EXPECT(has_value());
1599
38.0M
        return this->get_value();
1600
38.0M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &
std::__1::pair<wchar_t const*, long>& scn::v3::expected<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error>::value<std::__1::pair<wchar_t const*, long>, (void*)0>() &
Line
Count
Source
1597
29.7M
    {
1598
29.7M
        SCN_EXPECT(has_value());
1599
29.7M
        return this->get_value();
1600
29.7M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() &
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &
wchar_t const*& scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::value<wchar_t const*, (void*)0>() &
Line
Count
Source
1597
836k
    {
1598
836k
        SCN_EXPECT(has_value());
1599
836k
        return this->get_value();
1600
836k
    }
std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
591k
    {
1598
591k
        SCN_EXPECT(has_value());
1599
591k
        return this->get_value();
1600
591k
    }
scn::v3::impl::parse_integer_prefix_result<wchar_t const*>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() &
Line
Count
Source
1597
354k
    {
1598
354k
        SCN_EXPECT(has_value());
1599
354k
        return this->get_value();
1600
354k
    }
scn::v3::impl::parse_integer_prefix_result<wchar_t const*>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error>::value<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() &
Line
Count
Source
1597
354k
    {
1598
354k
        SCN_EXPECT(has_value());
1599
354k
        return this->get_value();
1600
354k
    }
std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Line
Count
Source
1597
724
    {
1598
724
        SCN_EXPECT(has_value());
1599
724
        return this->get_value();
1600
724
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &
std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
234k
    {
1598
234k
        SCN_EXPECT(has_value());
1599
234k
        return this->get_value();
1600
234k
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() &
std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::value<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() &
Line
Count
Source
1597
236k
    {
1598
236k
        SCN_EXPECT(has_value());
1599
236k
        return this->get_value();
1600
236k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, (void*)0>() &
Line
Count
Source
1597
296k
    {
1598
296k
        SCN_EXPECT(has_value());
1599
296k
        return this->get_value();
1600
296k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, (void*)0>() &
Line
Count
Source
1597
283k
    {
1598
283k
        SCN_EXPECT(has_value());
1599
283k
        return this->get_value();
1600
283k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, (void*)0>() &
Line
Count
Source
1597
382k
    {
1598
382k
        SCN_EXPECT(has_value());
1599
382k
        return this->get_value();
1600
382k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, (void*)0>() &
Line
Count
Source
1597
324k
    {
1598
324k
        SCN_EXPECT(has_value());
1599
324k
        return this->get_value();
1600
324k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, (void*)0>() &
Line
Count
Source
1597
390k
    {
1598
390k
        SCN_EXPECT(has_value());
1599
390k
        return this->get_value();
1600
390k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, (void*)0>() &
Line
Count
Source
1597
328k
    {
1598
328k
        SCN_EXPECT(has_value());
1599
328k
        return this->get_value();
1600
328k
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::value<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, (void*)0>() &
Line
Count
Source
1597
4.21M
    {
1598
4.21M
        SCN_EXPECT(has_value());
1599
4.21M
        return this->get_value();
1600
4.21M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, (void*)0>() &
Line
Count
Source
1597
298k
    {
1598
298k
        SCN_EXPECT(has_value());
1599
298k
        return this->get_value();
1600
298k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, (void*)0>() &
Line
Count
Source
1597
285k
    {
1598
285k
        SCN_EXPECT(has_value());
1599
285k
        return this->get_value();
1600
285k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, (void*)0>() &
Line
Count
Source
1597
383k
    {
1598
383k
        SCN_EXPECT(has_value());
1599
383k
        return this->get_value();
1600
383k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, (void*)0>() &
Line
Count
Source
1597
326k
    {
1598
326k
        SCN_EXPECT(has_value());
1599
326k
        return this->get_value();
1600
326k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, (void*)0>() &
Line
Count
Source
1597
390k
    {
1598
390k
        SCN_EXPECT(has_value());
1599
390k
        return this->get_value();
1600
390k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, (void*)0>() &
Line
Count
Source
1597
330k
    {
1598
330k
        SCN_EXPECT(has_value());
1599
330k
        return this->get_value();
1600
330k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, (void*)0>() &
Line
Count
Source
1597
595
    {
1598
595
        SCN_EXPECT(has_value());
1599
595
        return this->get_value();
1600
595
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, (void*)0>() &
Line
Count
Source
1597
500
    {
1598
500
        SCN_EXPECT(has_value());
1599
500
        return this->get_value();
1600
500
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, (void*)0>() &
Line
Count
Source
1597
711
    {
1598
711
        SCN_EXPECT(has_value());
1599
711
        return this->get_value();
1600
711
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, (void*)0>() &
Line
Count
Source
1597
564
    {
1598
564
        SCN_EXPECT(has_value());
1599
564
        return this->get_value();
1600
564
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, (void*)0>() &
Line
Count
Source
1597
864
    {
1598
864
        SCN_EXPECT(has_value());
1599
864
        return this->get_value();
1600
864
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, (void*)0>() &
Line
Count
Source
1597
694
    {
1598
694
        SCN_EXPECT(has_value());
1599
694
        return this->get_value();
1600
694
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::value<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, (void*)0>() &
Line
Count
Source
1597
18.3M
    {
1598
18.3M
        SCN_EXPECT(has_value());
1599
18.3M
        return this->get_value();
1600
18.3M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, (void*)0>() &
Line
Count
Source
1597
595
    {
1598
595
        SCN_EXPECT(has_value());
1599
595
        return this->get_value();
1600
595
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, (void*)0>() &
Line
Count
Source
1597
500
    {
1598
500
        SCN_EXPECT(has_value());
1599
500
        return this->get_value();
1600
500
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, (void*)0>() &
Line
Count
Source
1597
711
    {
1598
711
        SCN_EXPECT(has_value());
1599
711
        return this->get_value();
1600
711
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, (void*)0>() &
Line
Count
Source
1597
564
    {
1598
564
        SCN_EXPECT(has_value());
1599
564
        return this->get_value();
1600
564
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, (void*)0>() &
Line
Count
Source
1597
864
    {
1598
864
        SCN_EXPECT(has_value());
1599
864
        return this->get_value();
1600
864
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, (void*)0>() &
Line
Count
Source
1597
694
    {
1598
694
        SCN_EXPECT(has_value());
1599
694
        return this->get_value();
1600
694
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Line
Count
Source
1597
148k
    {
1598
148k
        SCN_EXPECT(has_value());
1599
148k
        return this->get_value();
1600
148k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, (void*)0>() &
Line
Count
Source
1597
148k
    {
1598
148k
        SCN_EXPECT(has_value());
1599
148k
        return this->get_value();
1600
148k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &
Line
Count
Source
1597
150k
    {
1598
150k
        SCN_EXPECT(has_value());
1599
150k
        return this->get_value();
1600
150k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, (void*)0>() &
Line
Count
Source
1597
18.2M
    {
1598
18.2M
        SCN_EXPECT(has_value());
1599
18.2M
        return this->get_value();
1600
18.2M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, (void*)0>() &
Line
Count
Source
1597
18.2M
    {
1598
18.2M
        SCN_EXPECT(has_value());
1599
18.2M
        return this->get_value();
1600
18.2M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, (void*)0>() &
Line
Count
Source
1597
18.2M
    {
1598
18.2M
        SCN_EXPECT(has_value());
1599
18.2M
        return this->get_value();
1600
18.2M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, (void*)0>() &
Line
Count
Source
1597
654k
    {
1598
654k
        SCN_EXPECT(has_value());
1599
654k
        return this->get_value();
1600
654k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, (void*)0>() &
Line
Count
Source
1597
711k
    {
1598
711k
        SCN_EXPECT(has_value());
1599
711k
        return this->get_value();
1600
711k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, (void*)0>() &
Line
Count
Source
1597
722k
    {
1598
722k
        SCN_EXPECT(has_value());
1599
722k
        return this->get_value();
1600
722k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, (void*)0>() &
Line
Count
Source
1597
643k
    {
1598
643k
        SCN_EXPECT(has_value());
1599
643k
        return this->get_value();
1600
643k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, (void*)0>() &
Line
Count
Source
1597
700k
    {
1598
700k
        SCN_EXPECT(has_value());
1599
700k
        return this->get_value();
1600
700k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, (void*)0>() &
Line
Count
Source
1597
709k
    {
1598
709k
        SCN_EXPECT(has_value());
1599
709k
        return this->get_value();
1600
709k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, (void*)0>() &
Line
Count
Source
1597
8.36k
    {
1598
8.36k
        SCN_EXPECT(has_value());
1599
8.36k
        return this->get_value();
1600
8.36k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, (void*)0>() &
Line
Count
Source
1597
8.43k
    {
1598
8.43k
        SCN_EXPECT(has_value());
1599
8.43k
        return this->get_value();
1600
8.43k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, (void*)0>() &
Line
Count
Source
1597
8.54k
    {
1598
8.54k
        SCN_EXPECT(has_value());
1599
8.54k
        return this->get_value();
1600
8.54k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, (void*)0>() &
Line
Count
Source
1597
8.33k
    {
1598
8.33k
        SCN_EXPECT(has_value());
1599
8.33k
        return this->get_value();
1600
8.33k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, (void*)0>() &
Line
Count
Source
1597
8.40k
    {
1598
8.40k
        SCN_EXPECT(has_value());
1599
8.40k
        return this->get_value();
1600
8.40k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>& scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error>::value<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, (void*)0>() &
Line
Count
Source
1597
8.52k
    {
1598
8.52k
        SCN_EXPECT(has_value());
1599
8.52k
        return this->get_value();
1600
8.52k
    }
1601
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1602
    constexpr const U& value() const& noexcept
1603
0
    {
1604
0
        SCN_EXPECT(has_value());
1605
0
        return this->get_value();
1606
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::value<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::value<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: char const* const& scn::v3::expected<char const*, scn::v3::impl::eof_error>::value<char const*, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() const &
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::value<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<char const*> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<char const*, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: char const* const& scn::v3::expected<char const*, scn::v3::impl::parse_error>::value<char const*, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() const &
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::value<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() const &
Unexecuted instantiation: wchar_t const* const& scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::value<wchar_t const*, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::value<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<wchar_t const*> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::value<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<wchar_t const*, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::value<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: wchar_t const* const& scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::value<wchar_t const*, (void*)0>() const &
1607
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1608
    constexpr U&& value() && noexcept
1609
    {
1610
        SCN_EXPECT(has_value());
1611
        return std::move(this->get_value());
1612
    }
1613
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1614
    constexpr const U&& value() const&& noexcept
1615
    {
1616
        SCN_EXPECT(has_value());
1617
        return std::move(this->get_value());
1618
    }
1619
1620
    /// Get the expected value, if one is contained in *this
1621
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1622
    constexpr U& operator*() & noexcept
1623
179M
    {
1624
179M
        return value();
1625
179M
    }
long& scn::v3::expected<long, scn::v3::scan_error>::operator*<long, (void*)0>() &
Line
Count
Source
1623
86.1M
    {
1624
86.1M
        return value();
1625
86.1M
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, (void*)0>() &
Line
Count
Source
1623
3.97M
    {
1624
3.97M
        return value();
1625
3.97M
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, (void*)0>() &
Line
Count
Source
1623
29.3M
    {
1624
29.3M
        return value();
1625
29.3M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &
Line
Count
Source
1623
1.67M
    {
1624
1.67M
        return value();
1625
1.67M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
scn::v3::detail::basic_scan_buffer<char>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &
Line
Count
Source
1623
6.88M
    {
1624
6.88M
        return value();
1625
6.88M
    }
char const*& scn::v3::expected<char const*, scn::v3::impl::eof_error>::operator*<char const*, (void*)0>() &
Line
Count
Source
1623
1.32M
    {
1624
1.32M
        return value();
1625
1.32M
    }
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &
Line
Count
Source
1623
374
    {
1624
374
        return value();
1625
374
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &
char const*& scn::v3::expected<char const*, scn::v3::impl::parse_error>::operator*<char const*, (void*)0>() &
Line
Count
Source
1623
3.13M
    {
1624
3.13M
        return value();
1625
3.13M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
scn::v3::detail::basic_scan_buffer<char>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &
Line
Count
Source
1623
3.17M
    {
1624
3.17M
        return value();
1625
3.17M
    }
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &
Line
Count
Source
1623
528
    {
1624
528
        return value();
1625
528
    }
char const*& scn::v3::expected<char const*, scn::v3::scan_error>::operator*<char const*, (void*)0>() &
Line
Count
Source
1623
3.23M
    {
1624
3.23M
        return value();
1625
3.23M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &
Line
Count
Source
1623
4.46k
    {
1624
4.46k
        return value();
1625
4.46k
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &
Line
Count
Source
1623
58.6k
    {
1624
58.6k
        return value();
1625
58.6k
    }
wchar_t const*& scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::operator*<wchar_t const*, (void*)0>() &
Line
Count
Source
1623
3.48k
    {
1624
3.48k
        return value();
1625
3.48k
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &
wchar_t const*& scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::operator*<wchar_t const*, (void*)0>() &
Line
Count
Source
1623
24.6k
    {
1624
24.6k
        return value();
1625
24.6k
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &
Line
Count
Source
1623
7.33M
    {
1624
7.33M
        return value();
1625
7.33M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &
wchar_t const*& scn::v3::expected<wchar_t const*, scn::v3::scan_error>::operator*<wchar_t const*, (void*)0>() &
Line
Count
Source
1623
14.6M
    {
1624
14.6M
        return value();
1625
14.6M
    }
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<char const*>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<char const*, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<wchar_t const*>& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() &
Unexecuted instantiation: std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() &
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, (void*)0>() &
Line
Count
Source
1623
3.84M
    {
1624
3.84M
        return value();
1625
3.84M
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, (void*)0>() &
Line
Count
Source
1623
14.6M
    {
1624
14.6M
        return value();
1625
14.6M
    }
1626
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1627
    constexpr const U& operator*() const& noexcept
1628
0
    {
1629
0
        return value();
1630
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: char const* const& scn::v3::expected<char const*, scn::v3::impl::eof_error>::operator*<char const*, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() const &
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<char const*> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<char const*, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: char const* const& scn::v3::expected<char const*, scn::v3::impl::parse_error>::operator*<char const*, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() const &
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() const &
Unexecuted instantiation: wchar_t const* const& scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::operator*<wchar_t const*, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> > const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() const &
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<wchar_t const*> const& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: std::__1::pair<wchar_t const*, scn::v3::impl::sign_type> const& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() const &
Unexecuted instantiation: wchar_t const* const& scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::operator*<wchar_t const*, (void*)0>() const &
1631
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1632
    constexpr U&& operator*() && noexcept
1633
331M
    {
1634
331M
        return std::move(value());
1635
331M
    }
std::__1::regex_constants::syntax_option_type&& scn::v3::expected<std::__1::regex_constants::syntax_option_type, scn::v3::scan_error>::operator*<std::__1::regex_constants::syntax_option_type, (void*)0>() &&
Line
Count
Source
1633
17.3k
    {
1634
17.3k
        return std::move(value());
1635
17.3k
    }
Unexecuted instantiation: wchar_t&& scn::v3::expected<wchar_t, scn::v3::scan_error>::operator*<wchar_t, (void*)0>() &&
scn::v3::detail::basic_scan_buffer<char>::forward_iterator&& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::eof_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &&
Line
Count
Source
1633
11.9M
    {
1634
11.9M
        return std::move(value());
1635
11.9M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::eof_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &&
Line
Count
Source
1633
19.6M
    {
1634
19.6M
        return std::move(value());
1635
19.6M
    }
char const*&& scn::v3::expected<char const*, scn::v3::scan_error>::operator*<char const*, (void*)0>() &&
Line
Count
Source
1633
19.2M
    {
1634
19.2M
        return std::move(value());
1635
19.2M
    }
wchar_t const*&& scn::v3::expected<wchar_t const*, scn::v3::scan_error>::operator*<wchar_t const*, (void*)0>() &&
Line
Count
Source
1633
74.2M
    {
1634
74.2M
        return std::move(value());
1635
74.2M
    }
char const*&& scn::v3::expected<char const*, scn::v3::impl::eof_error>::operator*<char const*, (void*)0>() &&
Line
Count
Source
1633
4.65M
    {
1634
4.65M
        return std::move(value());
1635
4.65M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &&
std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>&& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, long>, (void*)0>() &&
Line
Count
Source
1633
6.33M
    {
1634
6.33M
        return std::move(value());
1635
6.33M
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &&
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &&
std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
4.29M
    {
1634
4.29M
        return std::move(value());
1635
4.29M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator&& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::parse_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &&
Line
Count
Source
1633
9.09M
    {
1634
9.09M
        return std::move(value());
1635
9.09M
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() &&
Line
Count
Source
1633
2.16M
    {
1634
2.16M
        return std::move(value());
1635
2.16M
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, (void*)0>() &&
Line
Count
Source
1633
2.16M
    {
1634
2.16M
        return std::move(value());
1635
2.16M
    }
std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Line
Count
Source
1633
311k
    {
1634
311k
        return std::move(value());
1635
311k
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator&& scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>::operator*<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>() &&
Line
Count
Source
1633
12.2M
    {
1634
12.2M
        return std::move(value());
1635
12.2M
    }
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &&
Line
Count
Source
1633
11.0k
    {
1634
11.0k
        return std::move(value());
1635
11.0k
    }
std::__1::pair<char const*, long>&& scn::v3::expected<std::__1::pair<char const*, long>, scn::v3::scan_error>::operator*<std::__1::pair<char const*, long>, (void*)0>() &&
Line
Count
Source
1633
6.45M
    {
1634
6.45M
        return std::move(value());
1635
6.45M
    }
std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
2.95k
    {
1634
2.95k
        return std::move(value());
1635
2.95k
    }
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &&
Line
Count
Source
1633
4.10k
    {
1634
4.10k
        return std::move(value());
1635
4.10k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() &&
Line
Count
Source
1633
2.20k
    {
1634
2.20k
        return std::move(value());
1635
2.20k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, (void*)0>() &&
Line
Count
Source
1633
2.20k
    {
1634
2.20k
        return std::move(value());
1635
2.20k
    }
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>() &&
Line
Count
Source
1633
8.42k
    {
1634
8.42k
        return std::move(value());
1635
8.42k
    }
std::__1::pair<char const*, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
4.33M
    {
1634
4.33M
        return std::move(value());
1635
4.33M
    }
scn::v3::impl::parse_integer_prefix_result<char const*>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() &&
Line
Count
Source
1633
2.16M
    {
1634
2.16M
        return std::move(value());
1635
2.16M
    }
scn::v3::impl::parse_integer_prefix_result<char const*>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<char const*>, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<char const*>, (void*)0>() &&
Line
Count
Source
1633
2.16M
    {
1634
2.16M
        return std::move(value());
1635
2.16M
    }
std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Line
Count
Source
1633
309k
    {
1634
309k
        return std::move(value());
1635
309k
    }
long&& scn::v3::expected<long, scn::v3::scan_error>::operator*<long, (void*)0>() &&
Line
Count
Source
1633
8.38M
    {
1634
8.38M
        return std::move(value());
1635
8.38M
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &&
std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
2.13M
    {
1634
2.13M
        return std::move(value());
1635
2.13M
    }
std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
744
    {
1634
744
        return std::move(value());
1635
744
    }
std::__1::pair<char const*, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<char const*, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
2.17M
    {
1634
2.17M
        return std::move(value());
1635
2.17M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &&
std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>&& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, (void*)0>() &&
Line
Count
Source
1633
15.1M
    {
1634
15.1M
        return std::move(value());
1635
15.1M
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, (void*)0>() &&
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>() &&
std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
586k
    {
1634
586k
        return std::move(value());
1635
586k
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::parse_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &&
Line
Count
Source
1633
809k
    {
1634
809k
        return std::move(value());
1635
809k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() &&
Line
Count
Source
1633
351k
    {
1634
351k
        return std::move(value());
1635
351k
    }
scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, (void*)0>() &&
Line
Count
Source
1633
351k
    {
1634
351k
        return std::move(value());
1635
351k
    }
std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Line
Count
Source
1633
724
    {
1634
724
        return std::move(value());
1635
724
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator&& scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>::operator*<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>() &&
Line
Count
Source
1633
37.2M
    {
1634
37.2M
        return std::move(value());
1635
37.2M
    }
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &&
wchar_t const*&& scn::v3::expected<wchar_t const*, scn::v3::impl::eof_error>::operator*<wchar_t const*, (void*)0>() &&
Line
Count
Source
1633
38.0M
    {
1634
38.0M
        return std::move(value());
1635
38.0M
    }
std::__1::pair<wchar_t const*, long>&& scn::v3::expected<std::__1::pair<wchar_t const*, long>, scn::v3::scan_error>::operator*<std::__1::pair<wchar_t const*, long>, (void*)0>() &&
Line
Count
Source
1633
29.7M
    {
1634
29.7M
        return std::move(value());
1635
29.7M
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::parse_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, (void*)0>() &&
Unexecuted instantiation: std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Unexecuted instantiation: scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&& scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::operator*<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>() &&
std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator*<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
590k
    {
1634
590k
        return std::move(value());
1635
590k
    }
wchar_t const*&& scn::v3::expected<wchar_t const*, scn::v3::impl::parse_error>::operator*<wchar_t const*, (void*)0>() &&
Line
Count
Source
1633
811k
    {
1634
811k
        return std::move(value());
1635
811k
    }
scn::v3::impl::parse_integer_prefix_result<wchar_t const*>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::impl::eof_error>::operator*<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() &&
Line
Count
Source
1633
354k
    {
1634
354k
        return std::move(value());
1635
354k
    }
scn::v3::impl::parse_integer_prefix_result<wchar_t const*>&& scn::v3::expected<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, scn::v3::scan_error>::operator*<scn::v3::impl::parse_integer_prefix_result<wchar_t const*>, (void*)0>() &&
Line
Count
Source
1633
354k
    {
1634
354k
        return std::move(value());
1635
354k
    }
std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&& scn::v3::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator*<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, (void*)0>() &&
Line
Count
Source
1633
724
    {
1634
724
        return std::move(value());
1635
724
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, (void*)0>() &&
std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
234k
    {
1634
234k
        return std::move(value());
1635
234k
    }
Unexecuted instantiation: std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, (void*)0>() &&
std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>&& scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::scan_error>::operator*<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, (void*)0>() &&
Line
Count
Source
1633
236k
    {
1634
236k
        return std::move(value());
1635
236k
    }
char const*&& scn::v3::expected<char const*, scn::v3::impl::parse_error>::operator*<char const*, (void*)0>() &&
Line
Count
Source
1633
4.30k
    {
1634
4.30k
        return std::move(value());
1635
4.30k
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, (void*)0>() &&
Line
Count
Source
1633
422k
    {
1634
422k
        return std::move(value());
1635
422k
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, (void*)0>() &&
Line
Count
Source
1633
376k
    {
1634
376k
        return std::move(value());
1635
376k
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, (void*)0>() &&
Line
Count
Source
1633
7.32M
    {
1634
7.32M
        return std::move(value());
1635
7.32M
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&& scn::v3::expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v3::scan_error>::operator*<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, (void*)0>() &&
Line
Count
Source
1633
3.66M
    {
1634
3.66M
        return std::move(value());
1635
3.66M
    }
1636
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1637
    constexpr const U&& operator*() const&& noexcept
1638
    {
1639
        return std::move(value());
1640
    }
1641
1642
    constexpr value_type* operator->() noexcept
1643
63.8M
    {
1644
63.8M
        return &value();
1645
63.8M
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
Line
Count
Source
1643
219k
    {
1644
219k
        return &value();
1645
219k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
scn::v3::expected<std::__1::pair<char const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
Line
Count
Source
1643
71.4k
    {
1644
71.4k
        return &value();
1645
71.4k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
scn::v3::expected<std::__1::pair<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
Line
Count
Source
1643
1.58k
    {
1644
1.58k
        return &value();
1645
1.58k
    }
Unexecuted instantiation: scn::v3::expected<std::__1::pair<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
scn::v3::expected<std::__1::pair<wchar_t const*, scn::v3::impl::sign_type>, scn::v3::impl::eof_error>::operator->()
Line
Count
Source
1643
674
    {
1644
674
        return &value();
1645
674
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
296k
    {
1644
296k
        return &value();
1645
296k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
283k
    {
1644
283k
        return &value();
1645
283k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
382k
    {
1644
382k
        return &value();
1645
382k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
324k
    {
1644
324k
        return &value();
1645
324k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
390k
    {
1644
390k
        return &value();
1645
390k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
328k
    {
1644
328k
        return &value();
1645
328k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
298k
    {
1644
298k
        return &value();
1645
298k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
285k
    {
1644
285k
        return &value();
1645
285k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
383k
    {
1644
383k
        return &value();
1645
383k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
326k
    {
1644
326k
        return &value();
1645
326k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
390k
    {
1644
390k
        return &value();
1645
390k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
330k
    {
1644
330k
        return &value();
1645
330k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
595
    {
1644
595
        return &value();
1645
595
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
500
    {
1644
500
        return &value();
1645
500
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
711
    {
1644
711
        return &value();
1645
711
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
564
    {
1644
564
        return &value();
1645
564
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
864
    {
1644
864
        return &value();
1645
864
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
694
    {
1644
694
        return &value();
1645
694
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
595
    {
1644
595
        return &value();
1645
595
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
500
    {
1644
500
        return &value();
1645
500
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
711
    {
1644
711
        return &value();
1645
711
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
564
    {
1644
564
        return &value();
1645
564
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
864
    {
1644
864
        return &value();
1645
864
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
694
    {
1644
694
        return &value();
1645
694
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
148k
    {
1644
148k
        return &value();
1645
148k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
148k
    {
1644
148k
        return &value();
1645
148k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
150k
    {
1644
150k
        return &value();
1645
150k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
18.2M
    {
1644
18.2M
        return &value();
1645
18.2M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
18.2M
    {
1644
18.2M
        return &value();
1645
18.2M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
18.2M
    {
1644
18.2M
        return &value();
1645
18.2M
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
654k
    {
1644
654k
        return &value();
1645
654k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
711k
    {
1644
711k
        return &value();
1645
711k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
722k
    {
1644
722k
        return &value();
1645
722k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
643k
    {
1644
643k
        return &value();
1645
643k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
700k
    {
1644
700k
        return &value();
1645
700k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
709k
    {
1644
709k
        return &value();
1645
709k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
8.36k
    {
1644
8.36k
        return &value();
1645
8.36k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
8.43k
    {
1644
8.43k
        return &value();
1645
8.43k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
8.54k
    {
1644
8.54k
        return &value();
1645
8.54k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
8.33k
    {
1644
8.33k
        return &value();
1645
8.33k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
8.40k
    {
1644
8.40k
        return &value();
1645
8.40k
    }
scn::v3::expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>, scn::v3::scan_error>::operator->()
Line
Count
Source
1643
8.52k
    {
1644
8.52k
        return &value();
1645
8.52k
    }
1646
    constexpr const value_type* operator->() const noexcept
1647
    {
1648
        return &value();
1649
    }
1650
1651
    /// Returns the expected value if *this contains one, otherwise
1652
    /// returns default_value
1653
    template <typename U,
1654
              typename = std::enable_if_t<std::is_copy_constructible_v<T> &&
1655
                                          std::is_convertible_v<U, T>>>
1656
    constexpr T value_or(U&& default_value) const& noexcept(
1657
        std::is_nothrow_copy_constructible_v<T> &&
1658
        std::is_nothrow_constructible_v<T, U&&>)
1659
    {
1660
        if (has_value()) {
1661
            return value();
1662
        }
1663
        return std::forward<U>(default_value);
1664
    }
1665
    template <typename U,
1666
              typename = std::enable_if_t<std::is_move_constructible_v<T> &&
1667
                                          std::is_convertible_v<U, T>>>
1668
    constexpr T value_or(U&& default_value) && noexcept(
1669
        std::is_nothrow_move_constructible_v<T> &&
1670
        std::is_nothrow_constructible_v<T, U&&>)
1671
    {
1672
        if (has_value()) {
1673
            return std::move(value());
1674
        }
1675
        return std::forward<U>(default_value);
1676
    }
1677
1678
    template <typename G,
1679
              typename = std::enable_if_t<std::is_copy_constructible_v<E> &&
1680
                                          std::is_convertible_v<G, E>>>
1681
    constexpr E error_or(G&& default_error) const& noexcept(
1682
        std::is_nothrow_copy_constructible_v<E> &&
1683
        std::is_nothrow_constructible_v<E, G&&>)
1684
    {
1685
        if (!has_value()) {
1686
            return error();
1687
        }
1688
        return std::forward<G>(default_error);
1689
    }
1690
    template <typename G,
1691
              typename = std::enable_if_t<std::is_move_constructible_v<E> &&
1692
                                          std::is_convertible_v<G, E>>>
1693
    constexpr E error_or(G&& default_error) && noexcept(
1694
        std::is_nothrow_move_constructible_v<E> &&
1695
        std::is_nothrow_constructible_v<E, G&&>)
1696
    {
1697
        if (!has_value()) {
1698
            return std::move(error());
1699
        }
1700
        return std::forward<G>(default_error);
1701
    }
1702
1703
    template <typename F>
1704
    constexpr auto and_then(F&& f) & noexcept(noexcept(
1705
        detail::and_then_impl(SCN_DECLVAL(expected&), std::forward<F>(f))))
1706
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1707
    {
1708
        return detail::and_then_impl(*this, std::forward<F>(f));
1709
    }
1710
    template <typename F>
1711
    constexpr auto and_then(F&& f) const& noexcept(
1712
        noexcept(detail::and_then_impl(SCN_DECLVAL(const expected&),
1713
                                       std::forward<F>(f))))
1714
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1715
    {
1716
        return detail::and_then_impl(*this, std::forward<F>(f));
1717
    }
1718
    template <typename F>
1719
    constexpr auto and_then(F&& f) && noexcept(noexcept(
1720
        detail::and_then_impl(SCN_DECLVAL(expected&&), std::forward<F>(f))))
1721
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1722
    {
1723
        return detail::and_then_impl(std::move(*this), std::forward<F>(f));
1724
    }
1725
    template <typename F>
1726
    constexpr auto and_then(F&& f) const&& noexcept(
1727
        noexcept(detail::and_then_impl(SCN_DECLVAL(const expected&&),
1728
                                       std::forward<F>(f))))
1729
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1730
    {
1731
        return detail::and_then_impl(std::move(*this), std::forward<F>(f));
1732
    }
1733
1734
    template <typename F>
1735
    constexpr auto or_else(F&& f) & noexcept(noexcept(
1736
        detail::or_else_impl(SCN_DECLVAL(expected&), std::forward<F>(f))))
1737
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1738
    {
1739
        return detail::or_else_impl(*this, std::forward<F>(f));
1740
    }
1741
    template <typename F>
1742
    constexpr auto or_else(F&& f) const& noexcept(noexcept(
1743
        detail::or_else_impl(SCN_DECLVAL(const expected&), std::forward<F>(f))))
1744
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1745
    {
1746
        return detail::or_else_impl(*this, std::forward<F>(f));
1747
    }
1748
    template <typename F>
1749
    constexpr auto or_else(F&& f) && noexcept(noexcept(
1750
        detail::or_else_impl(SCN_DECLVAL(expected&&), std::forward<F>(f))))
1751
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1752
    {
1753
        return detail::or_else_impl(std::move(*this), std::forward<F>(f));
1754
    }
1755
    template <typename F>
1756
    constexpr auto or_else(F&& f) const&& noexcept(
1757
        noexcept(detail::or_else_impl(SCN_DECLVAL(const expected&&),
1758
                                      std::forward<F>(f))))
1759
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1760
    {
1761
        return detail::or_else_impl(std::move(*this), std::forward<F>(f));
1762
    }
1763
1764
    template <typename F>
1765
    constexpr auto transform(
1766
        F&& f) & -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1767
    {
1768
        return detail::transform_impl(*this, std::forward<F>(f));
1769
    }
1770
    template <typename F>
1771
    constexpr auto transform(F&& f)
1772
        const& -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1773
    {
1774
        return detail::transform_impl(*this, std::forward<F>(f));
1775
    }
1776
    template <typename F>
1777
    constexpr auto transform(
1778
        F&& f) && -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1779
    {
1780
        return detail::transform_impl(std::move(*this), std::forward<F>(f));
1781
    }
1782
    template <typename F>
1783
    constexpr auto transform(F&& f)
1784
        const&& -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1785
    {
1786
        return detail::transform_impl(std::move(*this), std::forward<F>(f));
1787
    }
1788
1789
    template <typename F>
1790
    constexpr auto transform_error(
1791
        F&& f) & -> decltype(detail::transform_error_impl(*this,
1792
                                                          std::forward<F>(f)))
1793
4.91M
    {
1794
4.91M
        return detail::transform_error_impl(*this, std::forward<F>(f));
1795
4.91M
    }
Unexecuted instantiation: _ZNR3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
_ZNR3scn2v38expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1793
2.06M
    {
1794
2.06M
        return detail::transform_error_impl(*this, std::forward<F>(f));
1795
2.06M
    }
_ZNR3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeES6_EUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
1793
1.48k
    {
1794
1.48k
        return detail::transform_error_impl(*this, std::forward<F>(f));
1795
1.48k
    }
_ZNR3scn2v38expectedIPKcNS0_4impl11parse_errorEE15transform_errorIZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES3_EUlS5_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1793
2.07M
    {
1794
2.07M
        return detail::transform_error_impl(*this, std::forward<F>(f));
1795
2.07M
    }
Unexecuted instantiation: _ZNR3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
_ZNR3scn2v38expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1793
443k
    {
1794
443k
        return detail::transform_error_impl(*this, std::forward<F>(f));
1795
443k
    }
Unexecuted instantiation: _ZNR3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
_ZNR3scn2v38expectedIPKwNS0_4impl11parse_errorEE15transform_errorIZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS5_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1793
332k
    {
1794
332k
        return detail::transform_error_impl(*this, std::forward<F>(f));
1795
332k
    }
1796
    template <typename F>
1797
    constexpr auto transform_error(F&& f)
1798
        const& -> decltype(detail::transform_error_impl(*this,
1799
                                                        std::forward<F>(f)))
1800
    {
1801
        return detail::transform_error_impl(*this, std::forward<F>(f));
1802
    }
1803
    template <typename F>
1804
    constexpr auto transform_error(
1805
        F&& f) && -> decltype(detail::transform_error_impl(*this,
1806
                                                           std::forward<F>(f)))
1807
86.4M
    {
1808
86.4M
        return detail::transform_error_impl(std::move(*this),
1809
86.4M
                                            std::forward<F>(f));
1810
86.4M
    }
_ZNO3scn2v38expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1807
4.50M
    {
1808
4.50M
        return detail::transform_error_impl(std::move(*this),
1809
4.50M
                                            std::forward<F>(f));
1810
4.50M
    }
_ZNO3scn2v38expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1807
18.8M
    {
1808
18.8M
        return detail::transform_error_impl(std::move(*this),
1809
18.8M
                                            std::forward<F>(f));
1810
18.8M
    }
_ZNO3scn2v38expectedIPKcNS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1807
4.69M
    {
1808
4.69M
        return detail::transform_error_impl(std::move(*this),
1809
4.69M
                                            std::forward<F>(f));
1810
4.69M
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESE_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
_ZNO3scn2v38expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS6_11parse_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1807
7.60M
    {
1808
7.60M
        return detail::transform_error_impl(std::move(*this),
1809
7.60M
                                            std::forward<F>(f));
1810
7.60M
    }
_ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1807
2.16M
    {
1808
2.16M
        return detail::transform_error_impl(std::move(*this),
1809
2.16M
                                            std::forward<F>(f));
1810
2.16M
    }
_ZNO3scn2v38expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1807
1.64M
    {
1808
1.64M
        return detail::transform_error_impl(std::move(*this),
1809
1.64M
                                            std::forward<F>(f));
1810
1.64M
    }
_ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
1807
6.97k
    {
1808
6.97k
        return detail::transform_error_impl(std::move(*this),
1809
6.97k
                                            std::forward<F>(f));
1810
6.97k
    }
_ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
1807
4.38k
    {
1808
4.38k
        return detail::transform_error_impl(std::move(*this),
1809
4.38k
                                            std::forward<F>(f));
1810
4.38k
    }
_ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESA_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Line
Count
Source
1807
2.20k
    {
1808
2.20k
        return detail::transform_error_impl(std::move(*this),
1809
2.20k
                                            std::forward<F>(f));
1810
2.20k
    }
_ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeES6_EUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
1807
2.17k
    {
1808
2.17k
        return detail::transform_error_impl(std::move(*this),
1809
2.17k
                                            std::forward<F>(f));
1810
2.17k
    }
_ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1807
2.16M
    {
1808
2.16M
        return detail::transform_error_impl(std::move(*this),
1809
2.16M
                                            std::forward<F>(f));
1810
2.16M
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESG_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSM_
_ZNO3scn2v38expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE15transform_errorIRFNS0_10scan_errorESB_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSH_
Line
Count
Source
1807
2.13M
    {
1808
2.13M
        return detail::transform_error_impl(std::move(*this),
1809
2.13M
                                            std::forward<F>(f));
1810
2.13M
    }
_ZNO3scn2v38expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Line
Count
Source
1807
744
    {
1808
744
        return detail::transform_error_impl(std::move(*this),
1809
744
                                            std::forward<F>(f));
1810
744
    }
_ZNO3scn2v38expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1807
2.17M
    {
1808
2.17M
        return detail::transform_error_impl(std::move(*this),
1809
2.17M
                                            std::forward<F>(f));
1810
2.17M
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESE_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
_ZNO3scn2v38expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS6_11parse_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1807
880k
    {
1808
880k
        return detail::transform_error_impl(std::move(*this),
1809
880k
                                            std::forward<F>(f));
1810
880k
    }
_ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1807
351k
    {
1808
351k
        return detail::transform_error_impl(std::move(*this),
1809
351k
                                            std::forward<F>(f));
1810
351k
    }
_ZNO3scn2v38expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1807
303k
    {
1808
303k
        return detail::transform_error_impl(std::move(*this),
1809
303k
                                            std::forward<F>(f));
1810
303k
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
_ZNO3scn2v38expectedIPKwNS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1807
37.2M
    {
1808
37.2M
        return detail::transform_error_impl(std::move(*this),
1809
37.2M
                                            std::forward<F>(f));
1810
37.2M
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESA_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Unexecuted instantiation: _ZNO3scn2v38expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
_ZNO3scn2v38expectedIPKwNS0_4impl9eof_errorEE15transform_errorIRFNS4_11parse_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1807
886k
    {
1808
886k
        return detail::transform_error_impl(std::move(*this),
1809
886k
                                            std::forward<F>(f));
1810
886k
    }
_ZNO3scn2v38expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1807
354k
    {
1808
354k
        return detail::transform_error_impl(std::move(*this),
1809
354k
                                            std::forward<F>(f));
1810
354k
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESG_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSM_
_ZNO3scn2v38expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE15transform_errorIRFNS0_10scan_errorESB_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSH_
Line
Count
Source
1807
234k
    {
1808
234k
        return detail::transform_error_impl(std::move(*this),
1809
234k
                                            std::forward<F>(f));
1810
234k
    }
Unexecuted instantiation: _ZNO3scn2v38expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
_ZNO3scn2v38expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
1807
236k
    {
1808
236k
        return detail::transform_error_impl(std::move(*this),
1809
236k
                                            std::forward<F>(f));
1810
236k
    }
_ZNO3scn2v38expectedIPKcNS0_4impl9eof_errorEE15transform_errorIRFNS4_11parse_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1807
4.48k
    {
1808
4.48k
        return detail::transform_error_impl(std::move(*this),
1809
4.48k
                                            std::forward<F>(f));
1810
4.48k
    }
1811
    template <typename F>
1812
    constexpr auto transform_error(F&& f)
1813
        const&& -> decltype(detail::transform_error_impl(*this,
1814
                                                         std::forward<F>(f)))
1815
    {
1816
        return detail::transform_error_impl(std::move(*this),
1817
                                            std::forward<F>(f));
1818
    }
1819
1820
private:
1821
    template <typename... Args>
1822
    void emplace_impl(Args&&... args) noexcept(
1823
        std::is_nothrow_constructible_v<T, Args&&...>)
1824
    {
1825
        if (this->has_value()) {
1826
            this->destroy_value();
1827
            this->construct(std::forward<Args>(args)...);
1828
        }
1829
        else {
1830
#if SCN_HAS_EXCEPTIONS
1831
            if constexpr (std::is_nothrow_constructible_v<T, Args&&...>) {
1832
                auto tmp = std::move(error());
1833
                this->destroy_unexpected();
1834
1835
                try {
1836
                    this->construct(std::forward<Args>(args)...);
1837
                }
1838
                catch (...) {
1839
                    this->construct_unexpected(std::move(tmp));
1840
                    throw;
1841
                }
1842
            }
1843
            else {
1844
                this->construct(std::forward<Args>(args)...);
1845
            }
1846
#else
1847
            this->destroy_unexpected();
1848
            this->construct(std::forward<Args>(args)...);
1849
#endif
1850
        }
1851
    }
1852
1853
    template <typename Value>
1854
    void assign_value(Value&& val) noexcept(
1855
        std::is_nothrow_constructible_v<detail::remove_cvref_t<Value>,
1856
                                        Value&&> &&
1857
        std::is_nothrow_assignable_v<T, Value&&>)
1858
    {
1859
        if (has_value()) {
1860
            this->get_value() = std::forward<Value>(val);
1861
            return;
1862
        }
1863
1864
#if SCN_HAS_EXCEPTIONS
1865
        if constexpr (std::is_nothrow_constructible_v<T, Value&&>) {
1866
            this->destroy_unexpected();
1867
            this->construct(std::forward<Value>(val));
1868
        }
1869
        else {
1870
            auto tmp = std::move(this->get_unexpected());
1871
            this->destroy_unexpected();
1872
1873
            try {
1874
                this->construct(std::forward<Value>(val));
1875
            }
1876
            catch (...) {
1877
                this->construct_unexpected(std::move(tmp));
1878
            }
1879
        }
1880
#else
1881
        this->destroy_unexpected();
1882
        this->construct(std::forward<Value>(val));
1883
#endif
1884
    }
1885
1886
    template <typename Unexpected>
1887
    void assign_unexpected(Unexpected&& unex) noexcept(
1888
        std::is_nothrow_constructible_v<E, Unexpected&&> &&
1889
        std::is_nothrow_assignable_v<E, Unexpected&&>)
1890
    {
1891
        if (!has_value()) {
1892
            this->get_unexpected() = std::forward<Unexpected>(unex);
1893
            return;
1894
        }
1895
1896
        this->destroy_value();
1897
        this->construct_unexpected(std::forward<Unexpected>(unex));
1898
    }
1899
};
1900
1901
/////////////////////////////////////////////////////////////////
1902
// <ranges> implementation
1903
/////////////////////////////////////////////////////////////////
1904
1905
// The following is a very minimal <ranges> implementation,
1906
// which is a heavily stripped-down and adapted version of NanoRange:
1907
//   https://github.com/tcbrindle/NanoRange
1908
// NanoRange is provided under the Boost license.
1909
//   Copyright (c) 2018 Tristan Brindle (tcbrindle at gmail dot com)
1910
1911
namespace ranges {
1912
1913
namespace detail {
1914
using namespace scn::detail;
1915
1916
template <typename T>
1917
constexpr auto decay_copy(T&& t) noexcept(
1918
    noexcept(static_cast<std::decay_t<T>>(SCN_FWD(t)))) -> std::decay_t<T>
1919
775M
{
1920
775M
    return SCN_FWD(t);
1921
775M
}
_ZN3scn2v36ranges6detail10decay_copyIPKcEEu7__decayIT_EOS6_
Line
Count
Source
1919
40.4M
{
1920
40.4M
    return SCN_FWD(t);
1921
40.4M
}
_ZN3scn2v36ranges6detail10decay_copyIPKwEEu7__decayIT_EOS6_
Line
Count
Source
1919
222M
{
1920
222M
    return SCN_FWD(t);
1921
222M
}
_ZN3scn2v36ranges6detail10decay_copyImEEu7__decayIT_EOS4_
Line
Count
Source
1919
46.9M
{
1920
46.9M
    return SCN_FWD(t);
1921
46.9M
}
Unexecuted instantiation: _ZN3scn2v36ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEu7__decayIT_EOSD_
_ZN3scn2v36ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EEEEu7__decayIT_EOSA_
Line
Count
Source
1919
7.12k
{
1920
7.12k
    return SCN_FWD(t);
1921
7.12k
}
_ZN3scn2v36ranges6detail10decay_copyINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEEu7__decayIT_EOS8_
Line
Count
Source
1919
1.49M
{
1920
1.49M
    return SCN_FWD(t);
1921
1.49M
}
Unexecuted instantiation: _ZN3scn2v36ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEu7__decayIT_EOSD_
Unexecuted instantiation: _ZN3scn2v36ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EEEEu7__decayIT_EOSA_
_ZN3scn2v36ranges6detail10decay_copyINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEEu7__decayIT_EOS8_
Line
Count
Source
1919
198k
{
1920
198k
    return SCN_FWD(t);
1921
198k
}
_ZN3scn2v36ranges6detail10decay_copyINSt3__116__deque_iteratorIcPKcRS6_PKS7_lLl4096EEEEEu7__decayIT_EOSC_
Line
Count
Source
1919
64.1M
{
1920
64.1M
    return SCN_FWD(t);
1921
64.1M
}
_ZN3scn2v36ranges6detail10decay_copyINSt3__116__deque_iteratorIwPKwRS6_PKS7_lLl1024EEEEEu7__decayIT_EOSC_
Line
Count
Source
1919
400M
{
1920
400M
    return SCN_FWD(t);
1921
400M
}
1922
1923
template <bool>
1924
struct conditional {
1925
    template <typename T, typename>
1926
    using type = T;
1927
};
1928
1929
template <>
1930
struct conditional<false> {
1931
    template <typename, typename U>
1932
    using type = U;
1933
};
1934
1935
template <bool B, typename T, typename U>
1936
using conditional_t = typename conditional<B>::template type<T, U>;
1937
1938
template <template <class...> class AliasT, typename... Args>
1939
auto exists_helper(long) -> std::false_type;
1940
1941
template <template <class...> class AliasT,
1942
          typename... Args,
1943
          typename = AliasT<Args...>>
1944
auto exists_helper(int) -> std::true_type;
1945
1946
template <template <class...> class AliasT, typename... Args>
1947
inline constexpr bool exists_v =
1948
    decltype(exists_helper<AliasT, Args...>(0))::value;
1949
1950
template <typename, typename...>
1951
auto test_requires_fn(long) -> std::false_type;
1952
1953
template <typename R,
1954
          typename... Args,
1955
          typename = decltype(&R::template requires_<Args...>)>
1956
auto test_requires_fn(int) -> std::true_type;
1957
1958
template <typename R, typename... Args>
1959
inline constexpr bool requires_ =
1960
    decltype(test_requires_fn<R, Args...>(0))::value;
1961
1962
template <bool Expr>
1963
using requires_expr = std::enable_if_t<Expr, int>;
1964
}  // namespace detail
1965
1966
template <typename>
1967
inline constexpr bool enable_borrowed_range = false;
1968
1969
namespace detail {
1970
template <typename T>
1971
inline constexpr bool boolean_testable_impl = std::is_convertible_v<T, bool>;
1972
1973
struct boolean_testable_concept {
1974
    template <typename T>
1975
    auto requires_(T&& t)
1976
        -> requires_expr<boolean_testable_impl<decltype(!std::forward<T>(t))>>;
1977
};
1978
1979
template <typename T>
1980
inline constexpr bool boolean_testable =
1981
    boolean_testable_impl<T> && detail::requires_<boolean_testable_concept, T>;
1982
}  // namespace detail
1983
1984
namespace detail {
1985
struct weakly_equality_comparable_with_concept {
1986
    template <typename T, typename U>
1987
    auto requires_(const std::remove_reference_t<T>& t,
1988
                   const std::remove_reference_t<U>& u)
1989
        -> decltype(requires_expr<boolean_testable<decltype(t == u)>>{},
1990
                    requires_expr<boolean_testable<decltype(t != u)>>{},
1991
                    requires_expr<boolean_testable<decltype(u == t)>>{},
1992
                    requires_expr<boolean_testable<decltype(u != t)>>{});
1993
};
1994
1995
template <typename T, typename U>
1996
inline constexpr bool weakly_equality_comparable_with =
1997
    requires_<weakly_equality_comparable_with_concept, T, U>;
1998
}  // namespace detail
1999
2000
template <typename T>
2001
inline constexpr bool equality_comparable =
2002
    detail::weakly_equality_comparable_with<T, T>;
2003
2004
namespace detail {
2005
struct equality_comparable_with_concept {
2006
    template <typename, typename>
2007
    static auto test(long) -> std::false_type;
2008
2009
    template <typename T, typename U>
2010
    static auto test(int)
2011
        -> std::enable_if_t<equality_comparable<T> && equality_comparable<U> &&
2012
#if 0
2013
            common_reference_with<const std::remove_reference_t<T>&,
2014
                                  const std::remove_reference_t<U>&> &&
2015
            equality_comparable<
2016
                common_reference_t<const std::remove_reference_t<T>&,
2017
                                   const std::remove_reference_t<U>&>> &&
2018
#endif
2019
                                weakly_equality_comparable_with<T, U>,
2020
                            std::true_type>;
2021
};
2022
}  // namespace detail
2023
2024
template <typename T, typename U>
2025
inline constexpr bool equality_comparable_with =
2026
    decltype(detail::equality_comparable_with_concept::test<T, U>(0))::value;
2027
2028
namespace detail {
2029
struct partially_ordered_with_concept {
2030
    template <typename T, typename U>
2031
    auto requires_(const std::remove_reference_t<T>& t,
2032
                   const std::remove_reference_t<U>& u)
2033
        -> decltype(requires_expr<boolean_testable<decltype(t < u)>>{},
2034
                    requires_expr<boolean_testable<decltype(t > u)>>{},
2035
                    requires_expr<boolean_testable<decltype(t <= u)>>{},
2036
                    requires_expr<boolean_testable<decltype(t >= u)>>{},
2037
                    requires_expr<boolean_testable<decltype(u < t)>>{},
2038
                    requires_expr<boolean_testable<decltype(u > t)>>{},
2039
                    requires_expr<boolean_testable<decltype(u <= t)>>{},
2040
                    requires_expr<boolean_testable<decltype(u >= t)>>{});
2041
};
2042
2043
template <typename T, typename U>
2044
inline constexpr bool partially_ordered_with =
2045
    detail::requires_<detail::partially_ordered_with_concept, T, U>;
2046
}  // namespace detail
2047
2048
template <typename T>
2049
inline constexpr bool totally_ordered =
2050
    equality_comparable<T> && detail::partially_ordered_with<T, T>;
2051
2052
namespace detail {
2053
struct totally_ordered_with_concept {
2054
    template <typename, typename>
2055
    static auto test(long) -> std::false_type;
2056
2057
    template <typename T, typename U>
2058
    static auto test(int)
2059
        -> std::enable_if_t<totally_ordered<T> && totally_ordered<U> &&
2060
                                equality_comparable_with<T, U> &&
2061
#if 0
2062
                                totally_ordered<common_reference_t<
2063
                                    const std::remove_reference_t<T>&,
2064
                                    const std::remove_reference_t<U>&>> &&
2065
#endif
2066
                                partially_ordered_with<T, U>,
2067
                            std::true_type>;
2068
};
2069
}  // namespace detail
2070
2071
template <typename T, typename U>
2072
inline constexpr bool totally_ordered_with =
2073
    decltype(detail::totally_ordered_with_concept::test<T, U>(0))::value;
2074
2075
namespace detail {
2076
struct movable_concept {
2077
    template <typename T>
2078
    static auto test(long) -> std::false_type;
2079
2080
    template <typename T>
2081
    static auto test(int) -> std::enable_if_t<
2082
        std::is_object_v<T> && std::is_move_constructible_v<T> &&
2083
            std::is_move_assignable_v<T> && std::is_swappable_v<T>,
2084
        std::true_type>;
2085
};
2086
}  // namespace detail
2087
2088
template <typename T>
2089
inline constexpr bool movable =
2090
    decltype(detail::movable_concept::test<T>(0))::value;
2091
2092
namespace detail {
2093
struct copyable_concept {
2094
    template <typename>
2095
    static auto test(long) -> std::false_type;
2096
2097
    template <typename T>
2098
    static auto test(int)
2099
        -> std::enable_if_t<std::is_copy_constructible_v<T> && movable<T> &&
2100
                                std::is_copy_assignable_v<T>,
2101
                            std::true_type>;
2102
};
2103
}  // namespace detail
2104
2105
template <typename T>
2106
inline constexpr bool copyable =
2107
    decltype(detail::copyable_concept::test<T>(0))::value;
2108
2109
template <typename T>
2110
inline constexpr bool semiregular =
2111
    copyable<T> && std::is_default_constructible_v<T>;
2112
2113
template <typename T>
2114
inline constexpr bool regular = semiregular<T> && equality_comparable<T>;
2115
2116
template <typename>
2117
struct incrementable_traits;
2118
2119
namespace detail {
2120
struct empty {};
2121
2122
template <typename T>
2123
struct with_difference_type {
2124
    using difference_type = T;
2125
};
2126
2127
template <typename, typename = void>
2128
struct incrementable_traits_helper {};
2129
2130
// Workaround for GCC silliness: void* has no difference_type
2131
// FIXME: This is required to stop WeaklyIncrementable<void*> being a hard
2132
// error Can we formulate the concept differently to avoid the need for this
2133
// hack?
2134
template <>
2135
struct incrementable_traits_helper<void*> {};
2136
2137
template <typename T>
2138
struct incrementable_traits_helper<T*>
2139
    : detail::conditional_t<std::is_object_v<T>,
2140
                            with_difference_type<std::ptrdiff_t>,
2141
                            empty> {};
2142
2143
template <class I>
2144
struct incrementable_traits_helper<const I>
2145
    : incrementable_traits<std::decay_t<I>> {};
2146
2147
template <typename, typename = void>
2148
struct has_member_difference_type : std::false_type {};
2149
2150
template <typename T>
2151
struct has_member_difference_type<T, std::void_t<typename T::difference_type>>
2152
    : std::true_type {};
2153
2154
template <typename T>
2155
constexpr bool has_member_difference_type_v =
2156
    has_member_difference_type<T>::value;
2157
2158
template <typename T>
2159
struct incrementable_traits_helper<
2160
    T,
2161
    std::enable_if_t<has_member_difference_type_v<T>>> {
2162
    using difference_type = typename T::difference_type;
2163
};
2164
2165
template <typename T, typename = void>
2166
struct subtraction_result_type {
2167
    using type = void;
2168
};
2169
template <typename T>
2170
struct subtraction_result_type<
2171
    T,
2172
    std::void_t<decltype(std::declval<const T&>() -
2173
                         std::declval<const T&>())>> {
2174
    using type = decltype(std::declval<const T&>() - std::declval<const T&>());
2175
};
2176
2177
template <typename T>
2178
inline constexpr bool enable_incrtraits_subtractable =
2179
    !std::is_pointer_v<T> && !has_member_difference_type_v<T> &&
2180
    std::is_integral_v<typename subtraction_result_type<T>::type>;
2181
2182
template <typename T>
2183
struct incrementable_traits_helper<
2184
    T,
2185
    std::enable_if_t<enable_incrtraits_subtractable<T>>>
2186
    : with_difference_type<
2187
          std::make_signed_t<typename subtraction_result_type<T>::type>> {};
2188
}  // namespace detail
2189
2190
template <typename T>
2191
struct incrementable_traits : detail::incrementable_traits_helper<T> {};
2192
2193
template <typename T>
2194
using iter_difference_t = typename incrementable_traits<T>::difference_type;
2195
2196
template <typename>
2197
struct readable_traits;
2198
2199
namespace detail {
2200
template <typename T>
2201
struct with_value_type {
2202
    using value_type = T;
2203
};
2204
2205
template <typename, typename = void>
2206
struct readable_traits_helper {};
2207
2208
template <typename T>
2209
struct readable_traits_helper<T*>
2210
    : detail::conditional_t<std::is_object_v<T>,
2211
                            with_value_type<std::remove_cv_t<T>>,
2212
                            empty> {};
2213
2214
template <typename I>
2215
struct readable_traits_helper<I, std::enable_if_t<std::is_array_v<I>>>
2216
    : readable_traits<std::decay_t<I>> {};
2217
2218
template <typename I>
2219
struct readable_traits_helper<const I, std::enable_if_t<!std::is_array_v<I>>>
2220
    : readable_traits<std::decay_t<I>> {};
2221
2222
template <typename T, typename V = typename T::value_type>
2223
struct member_value_type
2224
    : detail::conditional_t<std::is_object_v<V>, with_value_type<V>, empty> {};
2225
2226
template <typename T, typename E = typename T::element_type>
2227
struct member_element_type
2228
    : detail::conditional_t<std::is_object_v<E>,
2229
                            with_value_type<std::remove_cv_t<E>>,
2230
                            empty> {};
2231
2232
template <typename T>
2233
using member_value_type_t = typename T::value_type;
2234
2235
template <typename T>
2236
constexpr bool has_member_value_type_v = exists_v<member_value_type_t, T>;
2237
2238
template <typename T>
2239
using member_element_type_t = typename T::element_type;
2240
2241
template <typename T>
2242
constexpr bool has_member_element_type_v = exists_v<member_element_type_t, T>;
2243
2244
template <typename T>
2245
struct readable_traits_helper<T,
2246
                              std::enable_if_t<has_member_value_type_v<T> &&
2247
                                               !has_member_element_type_v<T>>>
2248
    : member_value_type<T> {};
2249
2250
template <typename T>
2251
struct readable_traits_helper<T,
2252
                              std::enable_if_t<has_member_element_type_v<T> &&
2253
                                               !has_member_value_type_v<T>>>
2254
    : member_element_type<T> {};
2255
2256
// A type which has both value_type and element_type members must specialise
2257
// readable_traits to tell us which one to prefer -- see
2258
// https://github.com/ericniebler/stl2/issues/562
2259
template <typename T>
2260
struct readable_traits_helper<T,
2261
                              std::enable_if_t<has_member_element_type_v<T> &&
2262
                                               has_member_value_type_v<T>>> {};
2263
}  // namespace detail
2264
2265
template <typename T>
2266
struct readable_traits : detail::readable_traits_helper<T> {};
2267
2268
template <typename T>
2269
using iter_value_t = typename readable_traits<T>::value_type;
2270
2271
namespace detail {
2272
template <typename T>
2273
using with_reference = T&;
2274
2275
struct can_reference_concept {
2276
    template <typename T>
2277
    auto requires_() -> with_reference<T>;
2278
};
2279
2280
template <typename T>
2281
inline constexpr bool can_reference =
2282
    detail::requires_<can_reference_concept, T>;
2283
2284
struct dereferencable_concept {
2285
    template <typename T>
2286
    auto requires_(T& t)
2287
        -> decltype(requires_expr<can_reference<decltype(*t)>>{});
2288
};
2289
2290
template <typename T>
2291
inline constexpr bool dereferenceable = requires_<dereferencable_concept, T>;
2292
2293
// GCC and Clang allow dereferencing void* as an extension.
2294
// Let's kill that off now.
2295
2296
template <>
2297
inline constexpr bool dereferenceable<void*> = false;
2298
}  // namespace detail
2299
2300
using std::bidirectional_iterator_tag;
2301
using std::forward_iterator_tag;
2302
using std::input_iterator_tag;
2303
using std::output_iterator_tag;
2304
using std::random_access_iterator_tag;
2305
2306
#if SCN_STD >= SCN_STD_20 && defined(__cpp_lib_ranges) && \
2307
    __cpp_lib_ranges >= 201911L
2308
using std::contiguous_iterator_tag;
2309
#else
2310
struct contiguous_iterator_tag : random_access_iterator_tag {};
2311
#endif
2312
2313
template <typename T>
2314
struct iterator_category;
2315
2316
namespace detail {
2317
template <typename T, typename = void>
2318
struct iterator_category_ {};
2319
template <typename T>
2320
struct iterator_category_<T*>
2321
    : std::enable_if<std::is_object_v<T>, contiguous_iterator_tag> {};
2322
template <typename T>
2323
struct iterator_category_<const T> : iterator_category<T> {};
2324
template <typename T>
2325
struct iterator_category_<T, std::void_t<typename T::iterator_category>> {
2326
    using type = typename T::iterator_category;
2327
};
2328
}  // namespace detail
2329
2330
template <typename T>
2331
struct iterator_category : detail::iterator_category_<T> {};
2332
template <typename T>
2333
using iterator_category_t = typename iterator_category<T>::type;
2334
2335
namespace detail {
2336
2337
template <typename T, typename = void>
2338
struct legacy_iterator_category : iterator_category<T> {};
2339
2340
template <typename T>
2341
struct legacy_iterator_category<
2342
    T,
2343
    std::enable_if_t<
2344
        std::is_same_v<iterator_category_t<T>, contiguous_iterator_tag>>> {
2345
    using type = random_access_iterator_tag;
2346
};
2347
2348
template <typename T>
2349
using legacy_iterator_category_t = typename legacy_iterator_category<T>::type;
2350
2351
}  // namespace detail
2352
2353
template <typename T>
2354
using iter_reference_t =
2355
    std::enable_if_t<detail::dereferenceable<T>, decltype(*std::declval<T&>())>;
2356
2357
namespace detail {
2358
2359
struct readable_concept {
2360
    template <typename In>
2361
    auto requires_() -> decltype(std::declval<iter_value_t<In>>(),
2362
                                 std::declval<iter_reference_t<In>>());
2363
    // std::declval<iter_rvalue_reference_t<In>>());
2364
2365
    template <typename>
2366
    static auto test(long) -> std::false_type;
2367
2368
    template <typename In>
2369
    static auto test(int)
2370
        -> std::enable_if_t<detail::requires_<readable_concept, In>,
2371
#if 0
2372
            common_reference_with<iter_reference_t<In>&&, iter_value_t<In>&> &&
2373
            common_reference_with<iter_reference_t<In>&&,
2374
                                  iter_rvalue_reference_t<In>&&> &&
2375
            common_reference_with<iter_rvalue_reference_t<In>&&,
2376
                                  const iter_value_t<In>&>,
2377
#endif
2378
                            std::true_type>;
2379
};
2380
2381
}  // namespace detail
2382
2383
template <typename In>
2384
inline constexpr bool readable =
2385
    decltype(detail::readable_concept::test<In>(0))::value;
2386
2387
namespace detail {
2388
2389
struct writable_concept {
2390
    template <typename Out, typename T>
2391
    auto requires_(Out&& o, T&& t)
2392
        -> decltype(*o = std::forward<T>(t),
2393
                    *std::forward<Out>(o) = std::forward<T>(t),
2394
                    const_cast<const iter_reference_t<Out>&&>(*o) =
2395
                        std::forward<T>(t),
2396
                    const_cast<const iter_reference_t<Out>&&>(
2397
                        *std::forward<Out>(o)) = std::forward<T>(t));
2398
};
2399
2400
}  // namespace detail
2401
2402
template <typename Out, typename T>
2403
inline constexpr bool writable =
2404
    detail::requires_<detail::writable_concept, Out, T>;
2405
2406
namespace detail {
2407
2408
template <typename T>
2409
inline constexpr bool is_integer_like = std::is_integral_v<T>;
2410
2411
template <typename T>
2412
inline constexpr bool is_signed_integer_like =
2413
    std::is_integral_v<T> && std::is_signed_v<T>;
2414
2415
struct weakly_incrementable_concept {
2416
    template <typename I>
2417
    auto requires_(I i)
2418
        -> decltype(std::declval<iter_difference_t<I>>(),
2419
                    requires_expr<
2420
                        is_signed_integer_like<iter_difference_t<I>>>{},
2421
                    requires_expr<std::is_same_v<decltype(++i), I&>>{},
2422
                    i++);
2423
};
2424
2425
}  // namespace detail
2426
2427
template <typename I>
2428
inline constexpr bool weakly_incrementable =
2429
    std::is_default_constructible_v<I> && movable<I> &&
2430
    detail::requires_<detail::weakly_incrementable_concept, I>;
2431
2432
namespace detail {
2433
2434
struct incrementable_concept {
2435
    template <typename I>
2436
    auto requires_(I i)
2437
        -> decltype(requires_expr<std::is_same_v<decltype(i++), I>>{});
2438
};
2439
2440
}  // namespace detail
2441
2442
template <typename I>
2443
inline constexpr bool incrementable =
2444
    regular<I> && weakly_incrementable<I> &&
2445
    detail::requires_<detail::incrementable_concept, I>;
2446
2447
namespace detail {
2448
2449
struct input_or_output_iterator_concept {
2450
    template <typename I>
2451
    auto requires_(I i)
2452
        -> decltype(requires_expr<can_reference<decltype(*i)>>{});
2453
};
2454
2455
}  // namespace detail
2456
2457
template <typename I>
2458
inline constexpr bool input_or_output_iterator =
2459
    detail::requires_<detail::input_or_output_iterator_concept, I> &&
2460
    weakly_incrementable<I>;
2461
2462
template <typename S, typename I>
2463
inline constexpr bool sentinel_for =
2464
    semiregular<S> && input_or_output_iterator<I> &&
2465
    detail::weakly_equality_comparable_with<S, I>;
2466
2467
template <typename S, typename I>
2468
inline constexpr bool disable_sized_sentinel = false;
2469
2470
namespace detail {
2471
2472
struct sized_sentinel_for_concept {
2473
    template <typename S, typename I>
2474
    auto requires_(const S& s, const I& i)
2475
        -> decltype(requires_expr<std::is_same_v<decltype(s - i),
2476
                                                 iter_difference_t<I>>>{},
2477
                    requires_expr<std::is_same_v<decltype(i - s),
2478
                                                 iter_difference_t<I>>>{});
2479
};
2480
2481
}  // namespace detail
2482
2483
template <typename S, typename I>
2484
inline constexpr bool sized_sentinel_for =
2485
    sentinel_for<S, I> &&
2486
    !disable_sized_sentinel<std::remove_cv_t<S>, std::remove_cv_t<I>> &&
2487
    detail::requires_<detail::sized_sentinel_for_concept, S, I>;
2488
2489
// This is a hack, but I'm fed up with my tests breaking because GCC
2490
// has a silly extension
2491
template <typename S>
2492
inline constexpr bool sized_sentinel_for<S, void*> = false;
2493
2494
template <typename I>
2495
inline constexpr bool sized_sentinel_for<void*, I> = false;
2496
2497
template <>
2498
inline constexpr bool sized_sentinel_for<void*, void*> = false;
2499
2500
namespace detail {
2501
2502
// FIXME: Use ITER_CONCEPT, not iterator_category_t
2503
struct input_iterator_concept {
2504
    template <typename I>
2505
    auto requires_() -> iterator_category_t<I>;
2506
2507
    template <typename>
2508
    static auto test(long) -> std::false_type;
2509
2510
    template <typename I>
2511
    static auto test(int) -> std::enable_if_t<
2512
        input_or_output_iterator<I> && readable<I> &&
2513
            detail::requires_<input_iterator_concept, I> &&
2514
            std::is_base_of_v<input_iterator_tag, iterator_category_t<I>>,
2515
        std::true_type>;
2516
};
2517
2518
}  // namespace detail
2519
2520
template <typename I>
2521
inline constexpr bool input_iterator =
2522
    decltype(detail::input_iterator_concept::test<I>(0))::value;
2523
2524
namespace detail {
2525
2526
struct output_iterator_concept {
2527
    template <typename I, typename T>
2528
    auto requires_(I i, T&& t) -> decltype(*i++ = std::forward<T>(t));
2529
};
2530
2531
}  // namespace detail
2532
2533
template <typename I, typename T>
2534
inline constexpr bool output_iterator =
2535
    input_or_output_iterator<I> && writable<I, T> &&
2536
    detail::requires_<detail::output_iterator_concept, I, T>;
2537
2538
namespace detail {
2539
2540
struct forward_iterator_concept {
2541
    template <typename>
2542
    static auto test(long) -> std::false_type;
2543
2544
    template <typename I>
2545
    static auto test(int) -> std::enable_if_t<
2546
        input_iterator<I> &&
2547
            std::is_base_of_v<forward_iterator_tag, iterator_category_t<I>> &&
2548
            incrementable<I> && sentinel_for<I, I>,
2549
        std::true_type>;
2550
};
2551
2552
}  // namespace detail
2553
2554
template <typename I>
2555
inline constexpr bool forward_iterator =
2556
    decltype(detail::forward_iterator_concept::test<I>(0))::value;
2557
2558
namespace detail {
2559
2560
struct bidirectional_iterator_concept {
2561
    template <typename I>
2562
    auto requires_(I i)
2563
        -> decltype(requires_expr<std::is_same_v<decltype(--i), I&>>{},
2564
                    requires_expr<std::is_same_v<decltype(i--), I>>{});
2565
2566
    template <typename>
2567
    static auto test(long) -> std::false_type;
2568
2569
    template <typename I>
2570
    static auto test(int) -> std::enable_if_t<
2571
        forward_iterator<I> &&
2572
            std::is_base_of_v<bidirectional_iterator_tag,
2573
                              iterator_category_t<I>> &&
2574
            detail::requires_<bidirectional_iterator_concept, I>,
2575
        std::true_type>;
2576
};
2577
2578
}  // namespace detail
2579
2580
template <typename I>
2581
inline constexpr bool bidirectional_iterator =
2582
    decltype(detail::bidirectional_iterator_concept::test<I>(0))::value;
2583
2584
namespace detail {
2585
2586
struct random_access_iterator_concept {
2587
    template <typename>
2588
    static auto test(long) -> std::false_type;
2589
2590
    template <typename I>
2591
    static auto test(int) -> std::enable_if_t<
2592
        bidirectional_iterator<I> &&
2593
            std::is_base_of_v<random_access_iterator_tag,
2594
                              iterator_category_t<I>> &&
2595
            totally_ordered<I> && sized_sentinel_for<I, I> &&
2596
            detail::requires_<random_access_iterator_concept, I>,
2597
        std::true_type>;
2598
2599
    template <typename I>
2600
    auto requires_(I i, const I j, const iter_difference_t<I> n)
2601
        -> decltype(requires_expr<std::is_same_v<decltype(i += n), I&>>{},
2602
                    requires_expr<std::is_same_v<decltype(j + n), I>>{},
2603
#ifndef _MSC_VER
2604
                    requires_expr<std::is_same_v<decltype(n + j),
2605
                                                 I>>{},  // FIXME: MSVC doesn't
2606
                                                         // like this when I =
2607
                                                         // int*
2608
#endif
2609
                    requires_expr<std::is_same_v<decltype(i -= n), I&>>{},
2610
                    requires_expr<std::is_same_v<decltype(j - n), I>>{},
2611
                    requires_expr<
2612
                        std::is_same_v<decltype(j[n]), iter_reference_t<I>>>{});
2613
};
2614
2615
}  // namespace detail
2616
2617
template <typename I>
2618
inline constexpr bool random_access_iterator =
2619
    decltype(detail::random_access_iterator_concept::test<I>(0))::value;
2620
2621
namespace detail {
2622
2623
struct contiguous_iterator_concept {
2624
    template <typename>
2625
    static auto test(long) -> std::false_type;
2626
2627
    template <typename I>
2628
    static auto test(int) -> std::enable_if_t<
2629
        random_access_iterator<I> &&
2630
            /*std::is_base_of_v<contiguous_iterator_tag,
2631
                              iterator_category_t<I>> &&*/
2632
            detail::can_make_address_from_iterator<I> &&
2633
            std::is_lvalue_reference_v<iter_reference_t<I>> &&
2634
            std::is_same_v<iter_value_t<I>,
2635
                           remove_cvref_t<iter_reference_t<I>>>,
2636
        std::true_type>;
2637
};
2638
2639
}  // namespace detail
2640
2641
template <typename I>
2642
inline constexpr bool contiguous_iterator =
2643
    decltype(detail::contiguous_iterator_concept::test<I>(0))::value;
2644
2645
namespace detail::begin_ {
2646
2647
template <typename T>
2648
void begin(T&) = delete;
2649
template <typename T>
2650
void begin(const T&) = delete;
2651
2652
struct fn {
2653
private:
2654
    template <typename T,
2655
              std::enable_if_t<!std::is_lvalue_reference_v<T> &&
2656
                               !enable_borrowed_range<std::remove_cv_t<T>>>* =
2657
                  nullptr>
2658
    static constexpr void impl(T&&, priority_tag<3>) = delete;
2659
2660
    template <typename T,
2661
              std::enable_if_t<std::is_array_v<remove_cvref_t<T>>>* = nullptr>
2662
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept
2663
        -> decltype(t + 0)
2664
    {
2665
        static_assert(ranges::input_or_output_iterator<decltype(t + 0)>);
2666
        return t + 0;
2667
    }
2668
2669
    template <typename T>
2670
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2671
        noexcept(decay_copy(SCN_FWD(t).begin())))
2672
        -> std::enable_if_t<
2673
            input_or_output_iterator<decltype(decay_copy(SCN_FWD(t).begin()))>,
2674
            decltype(decay_copy(SCN_FWD(t).begin()))>
2675
251M
    {
2676
251M
        return decay_copy(t.begin());
2677
251M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
378k
    {
2676
378k
        return decay_copy(t.begin());
2677
378k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
750k
    {
2676
750k
        return decay_copy(t.begin());
2677
750k
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
3.19k
    {
2676
3.19k
        return decay_copy(t.begin());
2677
3.19k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
21.7M
    {
2676
21.7M
        return decay_copy(t.begin());
2677
21.7M
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
1.49M
    {
2676
1.49M
        return decay_copy(t.begin());
2677
1.49M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
726
    {
2676
726
        return decay_copy(t.begin());
2677
726
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&, scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
73.7M
    {
2676
73.7M
        return decay_copy(t.begin());
2677
73.7M
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
198k
    {
2676
198k
        return decay_copy(t.begin());
2677
198k
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&>(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&, scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&&, scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
9.11M
    {
2676
9.11M
        return decay_copy(t.begin());
2677
9.11M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<std::__1::deque<char, std::__1::allocator<char> > const&>(std::__1::deque<char, std::__1::allocator<char> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
360k
    {
2676
360k
        return decay_copy(t.begin());
2677
360k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
8.79M
    {
2676
8.79M
        return decay_copy(t.begin());
2677
8.79M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
4.21M
    {
2676
4.21M
        return decay_copy(t.begin());
2677
4.21M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
73.9M
    {
2676
73.9M
        return decay_copy(t.begin());
2677
73.9M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&>(std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
721k
    {
2676
721k
        return decay_copy(t.begin());
2677
721k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
37.3M
    {
2676
37.3M
        return decay_copy(t.begin());
2677
37.3M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v3::ranges::detail::begin_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2675
18.3M
    {
2676
18.3M
        return decay_copy(t.begin());
2677
18.3M
    }
2678
2679
    template <typename T>
2680
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
2681
        noexcept(decay_copy(begin(SCN_FWD(t)))))
2682
        -> std::enable_if_t<
2683
            input_or_output_iterator<decltype(decay_copy(begin(SCN_FWD(t))))>,
2684
            decltype(decay_copy(begin(SCN_FWD(t))))>
2685
    {
2686
        return decay_copy(begin(SCN_FWD(t)));
2687
    }
2688
2689
public:
2690
    template <typename T>
2691
    constexpr auto operator()(T&& t) const
2692
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<3>{})))
2693
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<3>{}))
2694
251M
    {
2695
251M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
251M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
378k
    {
2695
378k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
378k
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
750k
    {
2695
750k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
750k
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
3.19k
    {
2695
3.19k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
3.19k
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
21.7M
    {
2695
21.7M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
21.7M
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEENS8_15take_width_viewINS7_ISE_SF_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
1.49M
    {
2695
1.49M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
1.49M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EENS8_15take_width_viewINS7_ISC_SC_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
726
    {
2695
726
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
726
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
73.7M
    {
2695
73.7M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
73.7M
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEENS8_15take_width_viewINS7_ISE_SF_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
198k
    {
2695
198k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
198k
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EENS8_15take_width_viewINS7_ISC_SC_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6begin_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
9.11M
    {
2695
9.11M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
9.11M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRKNSt3__15dequeIcNS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
360k
    {
2695
360k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
360k
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
8.79M
    {
2695
8.79M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
8.79M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
4.21M
    {
2695
4.21M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
4.21M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
73.9M
    {
2695
73.9M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
73.9M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRKNSt3__15dequeIwNS6_9allocatorIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
721k
    {
2695
721k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
721k
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
37.3M
    {
2695
37.3M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
37.3M
    }
_ZNK3scn2v36ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2694
18.3M
    {
2695
18.3M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2696
18.3M
    }
2697
};
2698
2699
}  // namespace detail::begin_
2700
2701
inline constexpr auto begin = detail::begin_::fn{};
2702
2703
namespace detail::end_ {
2704
2705
template <typename T>
2706
void end(T&) = delete;
2707
template <typename T>
2708
void end(const T&) = delete;
2709
2710
struct fn {
2711
private:
2712
    template <typename T,
2713
              std::enable_if_t<!std::is_lvalue_reference_v<T> &&
2714
                               !enable_borrowed_range<std::remove_cv_t<T>>>* =
2715
                  nullptr>
2716
    static constexpr void impl(T&&, priority_tag<3>) = delete;
2717
2718
    template <typename T,
2719
              std::enable_if_t<std::is_array_v<remove_cvref_t<T>>>* = nullptr>
2720
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept
2721
        -> decltype(t + std::extent_v<remove_cvref_t<T>>)
2722
    {
2723
        return t + std::extent_v<remove_cvref_t<T>>;
2724
    }
2725
2726
    template <typename T,
2727
              typename S = decltype(decay_copy(SCN_DECLVAL(T).end())),
2728
              typename I = decltype(::scn::ranges::begin(SCN_DECLVAL(T)))>
2729
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2730
        noexcept(decay_copy(SCN_FWD(t).end())))
2731
        -> std::enable_if_t<sentinel_for<S, I>,
2732
                            decltype(decay_copy(SCN_FWD(t).end()))>
2733
477M
    {
2734
477M
        return decay_copy(SCN_FWD(t).end());
2735
477M
    }
std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, char const*, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
4.77M
    {
2734
4.77M
        return decay_copy(SCN_FWD(t).end());
2735
4.77M
    }
std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, wchar_t const*, wchar_t const*>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
37.3M
    {
2734
37.3M
        return decay_copy(SCN_FWD(t).end());
2735
37.3M
    }
Unexecuted instantiation: std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&, char const*, char const*>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, wchar_t const*, wchar_t const*>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<sentinel_for<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
3.19k
    {
2734
3.19k
        return decay_copy(SCN_FWD(t).end());
2735
3.19k
    }
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >&, scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v3::detail::priority_tag<1ul>)
std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&, char const*, char const*>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
4.39M
    {
2734
4.39M
        return decay_copy(SCN_FWD(t).end());
2735
4.39M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
41.9M
    {
2734
41.9M
        return decay_copy(SCN_FWD(t).end());
2735
41.9M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
4.21M
    {
2734
4.21M
        return decay_copy(SCN_FWD(t).end());
2735
4.21M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<std::__1::deque<char, std::__1::allocator<char> > const&, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(std::__1::deque<char, std::__1::allocator<char> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
4.57M
    {
2734
4.57M
        return decay_copy(SCN_FWD(t).end());
2735
4.57M
    }
std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, wchar_t const*, wchar_t const*>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
36.6M
    {
2734
36.6M
        return decay_copy(SCN_FWD(t).end());
2735
36.6M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
306M
    {
2734
306M
        return decay_copy(SCN_FWD(t).end());
2735
306M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
18.3M
    {
2734
18.3M
        return decay_copy(SCN_FWD(t).end());
2735
18.3M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v3::ranges::detail::end_::fn::impl<std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2733
19.0M
    {
2734
19.0M
        return decay_copy(SCN_FWD(t).end());
2735
19.0M
    }
2736
2737
    template <typename T,
2738
              typename S = decltype(decay_copy(end(SCN_DECLVAL(T)))),
2739
              typename I = decltype(::scn::ranges::begin(SCN_DECLVAL(T)))>
2740
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(noexcept(
2741
        decay_copy(end(SCN_FWD(t))))) -> std::enable_if_t<sentinel_for<S, I>, S>
2742
    {
2743
        return decay_copy(end(SCN_FWD(t)));
2744
    }
2745
2746
public:
2747
    template <typename T>
2748
    constexpr auto operator()(T&& t) const
2749
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<3>{})))
2750
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<3>{}))
2751
477M
    {
2752
477M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
477M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
4.77M
    {
2752
4.77M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
4.77M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
37.3M
    {
2752
37.3M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
37.3M
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
3.19k
    {
2752
3.19k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
3.19k
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
_ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
4.39M
    {
2752
4.39M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
4.39M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
41.9M
    {
2752
41.9M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
41.9M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
4.21M
    {
2752
4.21M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
4.21M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRKNSt3__15dequeIcNS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
4.57M
    {
2752
4.57M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
4.57M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
36.6M
    {
2752
36.6M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
36.6M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
306M
    {
2752
306M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
306M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
18.3M
    {
2752
18.3M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
18.3M
    }
_ZNK3scn2v36ranges6detail4end_2fnclIRKNSt3__15dequeIwNS6_9allocatorIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2751
19.0M
    {
2752
19.0M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2753
19.0M
    }
2754
};
2755
2756
}  // namespace detail::end_
2757
2758
inline constexpr auto end = detail::end_::fn{};
2759
2760
namespace detail {
2761
struct range_concept {
2762
    template <typename T>
2763
    auto requires_(T& t) -> decltype(ranges::begin(t), ranges::end(t));
2764
};
2765
}  // namespace detail
2766
2767
template <typename T>
2768
inline constexpr bool range = detail::requires_<detail::range_concept, T>;
2769
2770
template <typename T>
2771
using iterator_t = decltype(ranges::begin(std::declval<T&>()));
2772
2773
template <typename R>
2774
using sentinel_t =
2775
    std::enable_if_t<range<R>, decltype(ranges::end(std::declval<R&>()))>;
2776
2777
template <typename R>
2778
using range_difference_t =
2779
    std::enable_if_t<range<R>, iter_difference_t<iterator_t<R>>>;
2780
2781
template <typename R>
2782
using range_value_t = std::enable_if_t<range<R>, iter_value_t<iterator_t<R>>>;
2783
2784
template <typename R>
2785
using range_reference_t =
2786
    std::enable_if_t<range<R>, iter_reference_t<iterator_t<R>>>;
2787
2788
namespace detail {
2789
template <typename, typename = void>
2790
inline constexpr bool is_object_pointer_v = false;
2791
template <typename P>
2792
inline constexpr bool
2793
    is_object_pointer_v<P,
2794
                        std::enable_if_t<std::is_pointer_v<P> &&
2795
                                         std::is_object_v<iter_value_t<P>>>> =
2796
        true;
2797
2798
namespace data_ {
2799
2800
struct fn {
2801
private:
2802
    template <typename T,
2803
              typename D = decltype(decay_copy(SCN_DECLVAL(T&).data()))>
2804
    static constexpr auto impl(T& t, priority_tag<1>) noexcept(noexcept(
2805
        decay_copy(t.data()))) -> std::enable_if_t<is_object_pointer_v<D>, D>
2806
90.2M
    {
2807
90.2M
        return t.data();
2808
90.2M
    }
std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v3::ranges::detail::data_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char const*>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2806
9.13M
    {
2807
9.13M
        return t.data();
2808
9.13M
    }
std::__1::enable_if<is_object_pointer_v<wchar_t const*>, wchar_t const*>::type scn::v3::ranges::detail::data_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t const*>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2806
37.0M
    {
2807
37.0M
        return t.data();
2808
37.0M
    }
std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v3::ranges::detail::data_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2806
1.92M
    {
2807
1.92M
        return t.data();
2808
1.92M
    }
std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v3::ranges::detail::data_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const, char const*>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2806
4.76M
    {
2807
4.76M
        return t.data();
2808
4.76M
    }
std::__1::enable_if<is_object_pointer_v<wchar_t const*>, wchar_t const*>::type scn::v3::ranges::detail::data_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const, wchar_t const*>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v3::detail::priority_tag<1ul>)
Line
Count
Source
2806
37.3M
    {
2807
37.3M
        return t.data();
2808
37.3M
    }
2809
2810
    template <typename T>
2811
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
2812
        noexcept(scn::ranges::begin(SCN_FWD(t))))
2813
        -> std::enable_if_t<
2814
            is_object_pointer_v<decltype(scn::ranges::begin(SCN_FWD(t)))>,
2815
            decltype(scn::ranges::begin(SCN_FWD(t)))>
2816
0
    {
2817
0
        return scn::ranges::begin(SCN_FWD(t));
2818
0
    }
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<decltype (scn::v3::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>, decltype (scn::v3::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>::type scn::v3::ranges::detail::data_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&&, scn::v3::detail::priority_tag<0ul>)
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<decltype (scn::v3::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>, decltype (scn::v3::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>::type scn::v3::ranges::detail::data_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&, scn::v3::detail::priority_tag<0ul>)
2819
2820
public:
2821
    template <typename T>
2822
    constexpr auto operator()(T&& t) const
2823
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<1>{})))
2824
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<1>{}))
2825
90.2M
    {
2826
90.2M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
2827
90.2M
    }
_ZNK3scn2v36ranges6detail5data_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2825
9.13M
    {
2826
9.13M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
2827
9.13M
    }
_ZNK3scn2v36ranges6detail5data_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2825
37.0M
    {
2826
37.0M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
2827
37.0M
    }
_ZNK3scn2v36ranges6detail5data_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2825
1.92M
    {
2826
1.92M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
2827
1.92M
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail5data_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail5data_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
_ZNK3scn2v36ranges6detail5data_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2825
4.76M
    {
2826
4.76M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
2827
4.76M
    }
_ZNK3scn2v36ranges6detail5data_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2825
37.3M
    {
2826
37.3M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
2827
37.3M
    }
2828
};
2829
2830
}  // namespace data_
2831
}  // namespace detail
2832
2833
inline constexpr auto data = detail::data_::fn{};
2834
2835
template <typename T>
2836
inline constexpr bool disable_sized_range = false;
2837
2838
namespace detail::size_ {
2839
2840
template <typename T>
2841
void size(T&&) = delete;
2842
template <typename T>
2843
void size(T&) = delete;
2844
2845
struct fn {
2846
private:
2847
    template <typename T, std::size_t N>
2848
    static constexpr std::size_t impl(const T (&&)[N], priority_tag<3>) noexcept
2849
    {
2850
        return N;
2851
    }
2852
2853
    template <typename T, std::size_t N>
2854
    static constexpr std::size_t impl(const T (&)[N], priority_tag<3>) noexcept
2855
    {
2856
        return N;
2857
    }
2858
2859
    template <typename T,
2860
              typename I = decltype(decay_copy(std::declval<T>().size()))>
2861
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept(
2862
        noexcept(decay_copy(SCN_FWD(t).size())))
2863
        -> std::enable_if_t<std::is_integral_v<I> &&
2864
                                !disable_sized_range<remove_cvref_t<T>>,
2865
                            I>
2866
46.9M
    {
2867
46.9M
        return decay_copy(SCN_FWD(t).size());
2868
46.9M
    }
_ZN3scn2v36ranges6detail5size_2fn4implIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
2866
4.19M
    {
2867
4.19M
        return decay_copy(SCN_FWD(t).size());
2868
4.19M
    }
_ZN3scn2v36ranges6detail5size_2fn4implIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
2866
372
    {
2867
372
        return decay_copy(SCN_FWD(t).size());
2868
372
    }
_ZN3scn2v36ranges6detail5size_2fn4implIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESG_E4typeEOSH_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
2866
610k
    {
2867
610k
        return decay_copy(SCN_FWD(t).size());
2868
610k
    }
Unexecuted instantiation: _ZN3scn2v36ranges6detail5size_2fn4implIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v36ranges6detail5size_2fn4implINS2_9subrange_8subrangeIPKcS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v36ranges6detail5size_2fn4implINS2_9subrange_8subrangeIPKwS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
_ZN3scn2v36ranges6detail5size_2fn4implIRKNS2_9subrange_8subrangeIPKcS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
2866
4.76M
    {
2867
4.76M
        return decay_copy(SCN_FWD(t).size());
2868
4.76M
    }
_ZN3scn2v36ranges6detail5size_2fn4implIRKNS2_9subrange_8subrangeIPKwS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
2866
37.3M
    {
2867
37.3M
        return decay_copy(SCN_FWD(t).size());
2868
37.3M
    }
2869
2870
    template <typename T,
2871
              typename I = decltype(decay_copy(size(std::declval<T>())))>
2872
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2873
        noexcept(decay_copy(size(SCN_FWD(t)))))
2874
        -> std::enable_if_t<std::is_integral_v<I> &&
2875
                                !disable_sized_range<remove_cvref_t<T>>,
2876
                            I>
2877
    {
2878
        return decay_copy(size(SCN_FWD(t)));
2879
    }
2880
2881
    template <typename T,
2882
              typename I = decltype(scn::ranges::begin(SCN_DECLVAL(T))),
2883
              typename S = decltype(scn::ranges::end(SCN_DECLVAL(T))),
2884
              typename D = decltype(static_cast<std::size_t>(SCN_DECLVAL(S) -
2885
                                                             SCN_DECLVAL(I)))>
2886
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(noexcept(
2887
        static_cast<size_t>(scn::ranges::end(t) - scn::ranges::begin(t))))
2888
        -> std::enable_if_t<!std::is_array_v<remove_cvref_t<T>> &&
2889
                                sized_sentinel_for<S, I> && forward_iterator<I>,
2890
                            D>
2891
    {
2892
        return static_cast<size_t>(scn::ranges::end(t) - scn::ranges::begin(t));
2893
    }
2894
2895
public:
2896
    template <typename T>
2897
    constexpr auto operator()(T&& t) const
2898
        noexcept(noexcept(fn::impl(std::forward<T>(t), priority_tag<3>{})))
2899
            -> decltype(fn::impl(std::forward<T>(t), priority_tag<3>{}))
2900
46.9M
    {
2901
46.9M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
2902
46.9M
    }
_ZNK3scn2v36ranges6detail5size_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSE_
Line
Count
Source
2900
4.19M
    {
2901
4.19M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
2902
4.19M
    }
_ZNK3scn2v36ranges6detail5size_2fnclIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Line
Count
Source
2900
372
    {
2901
372
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
2902
372
    }
_ZNK3scn2v36ranges6detail5size_2fnclIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSF_
Line
Count
Source
2900
610k
    {
2901
610k
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
2902
610k
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail5size_2fnclIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail5size_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSB_
Unexecuted instantiation: _ZNK3scn2v36ranges6detail5size_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSB_
_ZNK3scn2v36ranges6detail5size_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Line
Count
Source
2900
4.76M
    {
2901
4.76M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
2902
4.76M
    }
_ZNK3scn2v36ranges6detail5size_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Line
Count
Source
2900
37.3M
    {
2901
37.3M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
2902
37.3M
    }
2903
};
2904
2905
}  // namespace detail::size_
2906
2907
inline constexpr auto size = detail::size_::fn{};
2908
2909
namespace detail {
2910
namespace ssize_ {
2911
struct fn {
2912
private:
2913
    template <typename T>
2914
    using ssize_return_t = std::conditional_t<sizeof(range_difference_t<T>) <
2915
                                                  sizeof(std::ptrdiff_t),
2916
                                              std::ptrdiff_t,
2917
                                              range_difference_t<T>>;
2918
2919
    template <typename T>
2920
    static constexpr auto impl(T&& t) noexcept(
2921
        noexcept(ranges::size(std::forward<T>(t))))
2922
        -> decltype(ranges::size(std::forward<T>(t)), ssize_return_t<T>())
2923
4.80M
    {
2924
4.80M
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
2925
4.80M
    }
_ZN3scn2v36ranges6detail6ssize_2fn4implIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISE_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSE_EEEEE15difference_typeEE4typeELm8EElSN_E4typeE_EEOSE_
Line
Count
Source
2923
4.19M
    {
2924
4.19M
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
2925
4.19M
    }
_ZN3scn2v36ranges6detail6ssize_2fn4implIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISD_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSD_EEEEE15difference_typeEE4typeELm8EElSM_E4typeE_EEOSD_
Line
Count
Source
2923
372
    {
2924
372
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
2925
372
    }
_ZN3scn2v36ranges6detail6ssize_2fn4implIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISF_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSF_EEEEE15difference_typeEE4typeELm8EElSO_E4typeE_EEOSF_
Line
Count
Source
2923
610k
    {
2924
610k
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
2925
610k
    }
Unexecuted instantiation: _ZN3scn2v36ranges6detail6ssize_2fn4implIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISD_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSD_EEEEE15difference_typeEE4typeELm8EElSM_E4typeE_EEOSD_
2926
2927
public:
2928
    template <typename T>
2929
    constexpr auto operator()(T&& t) const
2930
        noexcept(noexcept(fn::impl(std::forward<T>(t))))
2931
            -> decltype(fn::impl(std::forward<T>(t)))
2932
4.80M
    {
2933
4.80M
        return fn::impl(std::forward<T>(t));
2934
4.80M
    }
_ZNK3scn2v36ranges6detail6ssize_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
2932
4.19M
    {
2933
4.19M
        return fn::impl(std::forward<T>(t));
2934
4.19M
    }
_ZNK3scn2v36ranges6detail6ssize_2fnclIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
2932
372
    {
2933
372
        return fn::impl(std::forward<T>(t));
2934
372
    }
_ZNK3scn2v36ranges6detail6ssize_2fnclIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
2932
610k
    {
2933
610k
        return fn::impl(std::forward<T>(t));
2934
610k
    }
Unexecuted instantiation: _ZNK3scn2v36ranges6detail6ssize_2fnclIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSD_
2935
};
2936
}  // namespace ssize_
2937
}  // namespace detail
2938
2939
inline constexpr auto ssize = detail::ssize_::fn{};
2940
2941
namespace detail::empty_ {
2942
struct fn {
2943
private:
2944
    template <typename T>
2945
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept(
2946
        noexcept(static_cast<bool>(SCN_FWD(t).empty())))
2947
        -> decltype(static_cast<bool>(SCN_FWD(t).empty()))
2948
96.0M
    {
2949
96.0M
        return static_cast<bool>(SCN_FWD(t).empty());
2950
96.0M
    }
decltype (static_cast<bool>(((static_cast<decltype ({parm#1})>({parm#1})).empty)())) scn::v3::ranges::detail::empty_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
2948
16.8M
    {
2949
16.8M
        return static_cast<bool>(SCN_FWD(t).empty());
2950
16.8M
    }
decltype (static_cast<bool>(((static_cast<decltype ({parm#1})>({parm#1})).empty)())) scn::v3::ranges::detail::empty_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
2948
37.0M
    {
2949
37.0M
        return static_cast<bool>(SCN_FWD(t).empty());
2950
37.0M
    }
decltype (static_cast<bool>(((static_cast<decltype ({parm#1})>({parm#1})).empty)())) scn::v3::ranges::detail::empty_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
2948
4.76M
    {
2949
4.76M
        return static_cast<bool>(SCN_FWD(t).empty());
2950
4.76M
    }
decltype (static_cast<bool>(((static_cast<decltype ({parm#1})>({parm#1})).empty)())) scn::v3::ranges::detail::empty_::fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
2948
37.3M
    {
2949
37.3M
        return static_cast<bool>(SCN_FWD(t).empty());
2950
37.3M
    }
2951
2952
    template <typename T>
2953
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2954
        noexcept(ranges::size(SCN_FWD(t)) == 0))
2955
        -> decltype(ranges::size(SCN_FWD(t)) == 0)
2956
    {
2957
        return ranges::size(SCN_FWD(t)) == 0;
2958
    }
2959
2960
    template <typename T,
2961
              typename I = decltype(ranges::begin(std::declval<T>()))>
2962
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
2963
        noexcept(ranges::begin(t) == ranges::end(t)))
2964
        -> std::enable_if_t<forward_iterator<I>,
2965
                            decltype(ranges::begin(t) == ranges::end(t))>
2966
    {
2967
        return ranges::begin(t) == ranges::end(t);
2968
    }
2969
2970
public:
2971
    template <typename T>
2972
    constexpr auto operator()(T&& t) const
2973
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<2>{})))
2974
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<2>{}))
2975
96.0M
    {
2976
96.0M
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
2977
96.0M
    }
_ZNK3scn2v36ranges6detail6empty_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm2EEEEEEOT_
Line
Count
Source
2975
16.8M
    {
2976
16.8M
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
2977
16.8M
    }
_ZNK3scn2v36ranges6detail6empty_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm2EEEEEEOT_
Line
Count
Source
2975
37.0M
    {
2976
37.0M
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
2977
37.0M
    }
_ZNK3scn2v36ranges6detail6empty_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm2EEEEEEOT_
Line
Count
Source
2975
4.76M
    {
2976
4.76M
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
2977
4.76M
    }
_ZNK3scn2v36ranges6detail6empty_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm2EEEEEEOT_
Line
Count
Source
2975
37.3M
    {
2976
37.3M
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
2977
37.3M
    }
2978
};
2979
}  // namespace detail::empty_
2980
2981
inline constexpr auto empty = detail::empty_::fn{};
2982
2983
template <typename T>
2984
inline constexpr bool borrowed_range =
2985
    range<T> && (std::is_lvalue_reference_v<T> ||
2986
                 enable_borrowed_range<detail::remove_cvref_t<T>>);
2987
2988
namespace detail {
2989
struct sized_range_concept {
2990
    template <typename T>
2991
    auto requires_(T& t) -> decltype(ranges::size(t));
2992
};
2993
}  // namespace detail
2994
2995
template <typename T>
2996
inline constexpr bool sized_range =
2997
    range<T> && !disable_sized_range<detail::remove_cvref_t<T>> &&
2998
    detail::requires_<detail::sized_range_concept, T>;
2999
3000
namespace detail {
3001
struct output_range_concept {
3002
    template <typename, typename>
3003
    static auto test(long) -> std::false_type;
3004
3005
    template <typename R, typename T>
3006
    static auto test(int)
3007
        -> std::enable_if_t<range<R> && output_iterator<iterator_t<R>, T>,
3008
                            std::true_type>;
3009
};
3010
}  // namespace detail
3011
3012
template <typename R, typename T>
3013
inline constexpr bool output_range =
3014
    decltype(detail::output_range_concept::test<R, T>(0))::value;
3015
3016
namespace detail {
3017
struct input_range_concept {
3018
    template <typename>
3019
    static auto test(long) -> std::false_type;
3020
3021
    template <typename T>
3022
    static auto test(int)
3023
        -> std::enable_if_t<range<T> && input_iterator<iterator_t<T>>,
3024
                            std::true_type>;
3025
};
3026
}  // namespace detail
3027
3028
template <typename T>
3029
inline constexpr bool input_range =
3030
    decltype(detail::input_range_concept::test<T>(0))::value;
3031
3032
namespace detail {
3033
struct forward_range_concept {
3034
    template <typename>
3035
    static auto test(long) -> std::false_type;
3036
3037
    template <typename T>
3038
    static auto test(int)
3039
        -> std::enable_if_t<input_range<T> && forward_iterator<iterator_t<T>>,
3040
                            std::true_type>;
3041
};
3042
}  // namespace detail
3043
3044
template <typename T>
3045
inline constexpr bool forward_range =
3046
    decltype(detail::forward_range_concept::test<T>(0))::value;
3047
3048
namespace detail {
3049
struct bidirectional_range_concept {
3050
    template <typename>
3051
    static auto test(long) -> std::false_type;
3052
3053
    template <typename T>
3054
    static auto test(int)
3055
        -> std::enable_if_t<forward_range<T> &&
3056
                                bidirectional_iterator<iterator_t<T>>,
3057
                            std::true_type>;
3058
};
3059
}  // namespace detail
3060
3061
template <typename T>
3062
inline constexpr bool bidirectional_range =
3063
    decltype(detail::bidirectional_range_concept::test<T>(0))::value;
3064
3065
namespace detail {
3066
struct random_access_range_concept {
3067
    template <typename>
3068
    static auto test(long) -> std::false_type;
3069
3070
    template <typename T>
3071
    static auto test(int)
3072
        -> std::enable_if_t<bidirectional_range<T> &&
3073
                                random_access_iterator<iterator_t<T>>,
3074
                            std::true_type>;
3075
};
3076
}  // namespace detail
3077
3078
template <typename T>
3079
inline constexpr bool random_access_range =
3080
    decltype(detail::random_access_range_concept::test<T>(0))::value;
3081
3082
namespace detail {
3083
// FIXME: Not to spec
3084
// We only require random_access_iterator, not contiguous_iterator
3085
// This is so that vector::iterator, string::iterator etc can model
3086
// contiguous_range.
3087
// If we do range-v3-style deep integration with iterator_traits then
3088
// this could be fixed
3089
struct contiguous_range_concept {
3090
    template <typename>
3091
    static auto test(long) -> std::false_type;
3092
3093
    template <typename T>
3094
    static auto test(int) -> std::enable_if_t<
3095
        random_access_range<T> && /* contiguous_iterator<iterator_t<T>>
3096
                                   * &&
3097
                                   */
3098
            detail::requires_<contiguous_range_concept, T>,
3099
        std::true_type>;
3100
3101
    template <typename T>
3102
    auto requires_(T& t)
3103
        -> decltype(requires_expr<std::is_same_v<
3104
                        decltype(ranges::data(t)),
3105
                        std::add_pointer_t<range_reference_t<T>>>>{});
3106
};
3107
}  // namespace detail
3108
3109
template <typename R>
3110
inline constexpr bool contiguous_range =
3111
    decltype(detail::contiguous_range_concept::test<R>(0))::value;
3112
3113
namespace detail {
3114
struct common_range_concept {
3115
    template <typename>
3116
    static auto test(long) -> std::false_type;
3117
3118
    template <typename T>
3119
    static auto test(int)
3120
        -> std::enable_if_t<range<T> &&
3121
                                std::is_same_v<iterator_t<T>, sentinel_t<T>>,
3122
                            std::true_type>;
3123
};
3124
}  // namespace detail
3125
3126
template <typename T>
3127
inline constexpr bool common_range =
3128
    decltype(detail::common_range_concept::test<T>(0))::value;
3129
3130
struct dangling {
3131
    constexpr dangling() noexcept = default;
3132
3133
    template <typename... Args>
3134
    constexpr dangling(Args&&...) noexcept
3135
    {
3136
    }
3137
};
3138
3139
template <typename R>
3140
using borrowed_iterator_t =
3141
    std::conditional_t<borrowed_range<R>, iterator_t<R>, dangling>;
3142
3143
template <typename D>
3144
class view_interface {
3145
    static_assert(std::is_class<D>::value, "");
3146
    static_assert(std::is_same_v<D, std::remove_cv_t<D>>, "");
3147
3148
private:
3149
    constexpr D& derived() noexcept
3150
107M
    {
3151
107M
        return static_cast<D&>(*this);
3152
107M
    }
scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::derived()
Line
Count
Source
3150
33.6M
    {
3151
33.6M
        return static_cast<D&>(*this);
3152
33.6M
    }
scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::derived()
Line
Count
Source
3150
74.0M
    {
3151
74.0M
        return static_cast<D&>(*this);
3152
74.0M
    }
3153
3154
    constexpr const D& derived() const noexcept
3155
84.2M
    {
3156
84.2M
        return static_cast<const D&>(*this);
3157
84.2M
    }
scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::derived() const
Line
Count
Source
3155
9.48M
    {
3156
9.48M
        return static_cast<const D&>(*this);
3157
9.48M
    }
scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::derived() const
Line
Count
Source
3155
74.7M
    {
3156
74.7M
        return static_cast<const D&>(*this);
3157
74.7M
    }
3158
3159
public:
3160
    template <typename R = D>
3161
    [[nodiscard]] constexpr auto empty()
3162
        -> std::enable_if_t<forward_range<R>, bool>
3163
    {
3164
        return ranges::begin(derived()) == ranges::end(derived());
3165
    }
3166
3167
    template <typename R = D>
3168
    [[nodiscard]] constexpr auto empty() const
3169
        -> std::enable_if_t<forward_range<const R>, bool>
3170
    {
3171
        return ranges::begin(derived()) == ranges::end(derived());
3172
    }
3173
3174
    template <typename R = D,
3175
              typename = decltype(ranges::empty(std::declval<R&>()))>
3176
    constexpr explicit operator bool()
3177
    {
3178
        return !ranges::empty(derived());
3179
    }
3180
3181
    template <typename R = D,
3182
              typename = decltype(ranges::empty(std::declval<const R&>()))>
3183
    constexpr explicit operator bool() const
3184
    {
3185
        return !ranges::empty(derived());
3186
    }
3187
3188
    template <typename R = D,
3189
              typename = std::enable_if_t<contiguous_iterator<iterator_t<R>>>>
3190
    constexpr auto data()
3191
53.9M
    {
3192
53.9M
        return ranges::empty(derived())
3193
53.9M
                   ? nullptr
3194
53.9M
                   : std::addressof(*ranges::begin(derived()));
3195
53.9M
    }
auto scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::data<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void>()
Line
Count
Source
3191
16.8M
    {
3192
16.8M
        return ranges::empty(derived())
3193
16.8M
                   ? nullptr
3194
16.8M
                   : std::addressof(*ranges::begin(derived()));
3195
16.8M
    }
auto scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::data<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>()
Line
Count
Source
3191
37.0M
    {
3192
37.0M
        return ranges::empty(derived())
3193
37.0M
                   ? nullptr
3194
37.0M
                   : std::addressof(*ranges::begin(derived()));
3195
37.0M
    }
3196
3197
    template <typename R = D,
3198
              typename = std::enable_if_t<
3199
                  range<const R> && contiguous_iterator<iterator_t<const R>>>>
3200
    constexpr auto data() const
3201
42.1M
    {
3202
42.1M
        return ranges::empty(derived())
3203
42.1M
                   ? nullptr
3204
42.1M
                   : std::addressof(*ranges::begin(derived()));
3205
42.1M
    }
auto scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::data<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void>() const
Line
Count
Source
3201
4.76M
    {
3202
4.76M
        return ranges::empty(derived())
3203
4.76M
                   ? nullptr
3204
4.76M
                   : std::addressof(*ranges::begin(derived()));
3205
4.76M
    }
auto scn::v3::ranges::view_interface<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::data<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>() const
Line
Count
Source
3201
37.3M
    {
3202
37.3M
        return ranges::empty(derived())
3203
37.3M
                   ? nullptr
3204
37.3M
                   : std::addressof(*ranges::begin(derived()));
3205
37.3M
    }
3206
3207
    template <typename R = D,
3208
              typename = std::enable_if_t<
3209
                  forward_range<R> &&
3210
                  sized_sentinel_for<sentinel_t<R>, iterator_t<R>>>>
3211
    constexpr auto size()
3212
    {
3213
        return ranges::end(derived()) - ranges::begin(derived());
3214
    }
3215
3216
    template <typename R = D,
3217
              typename = std::enable_if_t<
3218
                  forward_range<const R> &&
3219
                  sized_sentinel_for<sentinel_t<const R>, iterator_t<const R>>>>
3220
    constexpr auto size() const
3221
    {
3222
        return ranges::end(derived()) - ranges::begin(derived());
3223
    }
3224
3225
#if 0
3226
    template <typename R = D, typename = std::enable_if_t<forward_range<R>>>
3227
    constexpr decltype(auto) front()
3228
    {
3229
        return *ranges::begin(derived());
3230
    }
3231
3232
    template <typename R = D,
3233
              typename = std::enable_if_t<forward_range<const R>>>
3234
    constexpr decltype(auto) front() const
3235
    {
3236
        return *ranges::begin(derived());
3237
    }
3238
3239
    template <
3240
        typename R = D,
3241
        typename = std::enable_if_t<bidirectional_range<R> && common_range<R>>>
3242
    constexpr decltype(auto) back()
3243
    {
3244
        return *ranges::prev(ranges::end(derived()));
3245
    }
3246
3247
    template <typename R = D,
3248
              typename = std::enable_if_t<bidirectional_range<const R> &&
3249
                                          common_range<const R>>>
3250
    constexpr decltype(auto) back() const
3251
    {
3252
        return *ranges::prev(ranges::end(derived()));
3253
    }
3254
3255
    template <typename R = D,
3256
              typename = std::enable_if_t<random_access_range<R>>>
3257
    constexpr decltype(auto) operator[](iter_difference_t<iterator_t<R>> n)
3258
    {
3259
        return ranges::begin(derived())[n];
3260
    }
3261
#endif
3262
3263
    template <typename R = D,
3264
              typename = std::enable_if_t<random_access_range<const R>>>
3265
    constexpr decltype(auto) operator[](
3266
        iter_difference_t<iterator_t<const R>> n) const
3267
    {
3268
        return ranges::begin(derived())[n];
3269
    }
3270
};
3271
3272
namespace detail::subrange_ {
3273
3274
template <typename I, typename S = I>
3275
class subrange : public view_interface<subrange<I, S>> {
3276
    static_assert(input_or_output_iterator<I>);
3277
    static_assert(sentinel_for<S, I>);
3278
3279
public:
3280
    subrange() = default;
3281
3282
    template <typename I_,
3283
              std::enable_if_t<std::is_convertible_v<I_, I>>* = nullptr>
3284
    constexpr subrange(I_ i, S s)
3285
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3286
1.16G
    {
3287
1.16G
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>::subrange<char const*, (void*)0>(char const*, char const*)
Line
Count
Source
3286
44.7M
    {
3287
44.7M
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::subrange<wchar_t const*, (void*)0>(wchar_t const*, wchar_t const*)
Line
Count
Source
3286
708M
    {
3287
708M
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t)
Line
Count
Source
3286
44.6M
    {
3287
44.6M
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t)
Line
Count
Source
3286
300M
    {
3287
300M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true>)
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>)
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, (void*)0>(scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::detail::basic_scan_buffer<char>::forward_iterator)
Line
Count
Source
3286
3.67M
    {
3287
3.67M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true>)
scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true>)
Line
Count
Source
3286
366k
    {
3287
366k
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>)
Line
Count
Source
3286
3.19k
    {
3287
3.19k
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true>)
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>)
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, (void*)0>(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator)
Line
Count
Source
3286
18.3M
    {
3287
18.3M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true>)
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true>)
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, (void*)0>(scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>)
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, (void*)0>(std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>)
Line
Count
Source
3286
8.79M
    {
3287
8.79M
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, (void*)0>(std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>)
Line
Count
Source
3286
37.3M
    {
3287
37.3M
    }
3288
3289
    template <
3290
        typename R,
3291
        std::enable_if_t<is_not_self<R, subrange> && borrowed_range<R> &&
3292
                         std::is_convertible_v<iterator_t<R>, I> &&
3293
                         std::is_convertible_v<sentinel_t<R>, S>>* = nullptr>
3294
    constexpr subrange(R&& r)
3295
        : m_iterator(scn::ranges::begin(r)), m_sentinel(scn::ranges::end(r))
3296
    {
3297
    }
3298
3299
    constexpr I begin() const
3300
3.01G
    {
3301
3.01G
        return m_iterator;
3302
3.01G
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>::begin() const
Line
Count
Source
3300
158M
    {
3301
158M
        return m_iterator;
3302
158M
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>::begin() const
Line
Count
Source
3300
890M
    {
3301
890M
        return m_iterator;
3302
890M
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>::begin() const
Line
Count
Source
3300
97.1M
    {
3301
97.1M
        return m_iterator;
3302
97.1M
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::begin() const
Line
Count
Source
3300
1.77G
    {
3301
1.77G
        return m_iterator;
3302
1.77G
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::begin() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>::begin() const
Line
Count
Source
3300
6.42M
    {
3301
6.42M
        return m_iterator;
3302
6.42M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >::begin() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >::begin() const
Line
Count
Source
3300
1.04M
    {
3301
1.04M
        return m_iterator;
3302
1.04M
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::begin() const
Line
Count
Source
3300
3.19k
    {
3301
3.19k
        return m_iterator;
3302
3.19k
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::begin() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>::begin() const
Line
Count
Source
3300
18.3M
    {
3301
18.3M
        return m_iterator;
3302
18.3M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::begin() const
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >::begin() const
Line
Count
Source
3300
13.0M
    {
3301
13.0M
        return m_iterator;
3302
13.0M
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >::begin() const
Line
Count
Source
3300
55.6M
    {
3301
55.6M
        return m_iterator;
3302
55.6M
    }
3303
    constexpr S end() const
3304
3.02G
    {
3305
3.02G
        return m_sentinel;
3306
3.02G
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>::end() const
Line
Count
Source
3304
63.1M
    {
3305
63.1M
        return m_sentinel;
3306
63.1M
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::end() const
Line
Count
Source
3304
1.61G
    {
3305
1.61G
        return m_sentinel;
3306
1.61G
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >::end() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>::end() const
Line
Count
Source
3304
114M
    {
3305
114M
        return m_sentinel;
3306
114M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::end() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>::end() const
Line
Count
Source
3304
6.42M
    {
3305
6.42M
        return m_sentinel;
3306
6.42M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >::end() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >::end() const
Line
Count
Source
3304
739k
    {
3305
739k
        return m_sentinel;
3306
739k
    }
scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::end() const
Line
Count
Source
3304
3.19k
    {
3305
3.19k
        return m_sentinel;
3306
3.19k
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >::end() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>::end() const
Line
Count
Source
3304
828M
    {
3305
828M
        return m_sentinel;
3306
828M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::end() const
scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>::end() const
Line
Count
Source
3304
18.3M
    {
3305
18.3M
        return m_sentinel;
3306
18.3M
    }
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::end() const
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >::end() const
Line
Count
Source
3304
46.2M
    {
3305
46.2M
        return m_sentinel;
3306
46.2M
    }
scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >::end() const
Line
Count
Source
3304
324M
    {
3305
324M
        return m_sentinel;
3306
324M
    }
3307
3308
    SCN_NODISCARD constexpr bool empty() const
3309
96.0M
    {
3310
96.0M
        return m_iterator == m_sentinel;
3311
96.0M
    }
scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>::empty() const
Line
Count
Source
3309
21.6M
    {
3310
21.6M
        return m_iterator == m_sentinel;
3311
21.6M
    }
scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::empty() const
Line
Count
Source
3309
74.4M
    {
3310
74.4M
        return m_iterator == m_sentinel;
3311
74.4M
    }
3312
3313
    template <typename I_ = I,
3314
              std::enable_if_t<sized_sentinel_for<S, I_>>* = nullptr>
3315
    constexpr std::size_t size() const
3316
97.0M
    {
3317
97.0M
        return static_cast<size_t>(m_sentinel - m_iterator);
3318
97.0M
    }
unsigned long scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>::size<char const*, (void*)0>() const
Line
Count
Source
3316
21.7M
    {
3317
21.7M
        return static_cast<size_t>(m_sentinel - m_iterator);
3318
21.7M
    }
unsigned long scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::size<wchar_t const*, (void*)0>() const
Line
Count
Source
3316
75.2M
    {
3317
75.2M
        return static_cast<size_t>(m_sentinel - m_iterator);
3318
75.2M
    }
3319
3320
private:
3321
    SCN_NO_UNIQUE_ADDRESS I m_iterator{};
3322
    SCN_NO_UNIQUE_ADDRESS S m_sentinel{};
3323
};
3324
3325
template <typename I,
3326
          typename S,
3327
          std::enable_if_t<input_or_output_iterator<I> && sentinel_for<S, I>>* =
3328
              nullptr>
3329
subrange(I, S) -> subrange<I, S>;
3330
3331
template <typename R, std::enable_if_t<borrowed_range<R>>* = nullptr>
3332
subrange(R&&) -> subrange<iterator_t<R>, sentinel_t<R>>;
3333
3334
}  // namespace detail::subrange_
3335
3336
using detail::subrange_::subrange;
3337
3338
template <typename I, typename S>
3339
inline constexpr bool enable_borrowed_range<subrange<I, S>> = true;
3340
3341
struct default_sentinel_t {};
3342
inline constexpr default_sentinel_t default_sentinel{};
3343
3344
}  // namespace ranges
3345
3346
namespace detail {
3347
3348
namespace char_t_fn {
3349
template <typename T, typename = typename T::value_type>
3350
constexpr auto impl_nonarray(priority_tag<2>)
3351
0
{
3352
0
    return tag_type<typename T::value_type>{};
3353
0
}
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<std::__1::basic_string_view<char, std::__1::char_traits<char> >, char>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, wchar_t>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, char>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >, char>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >, char>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, wchar_t>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, wchar_t>(scn::v3::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >, wchar_t>(scn::v3::detail::priority_tag<2ul>)
3354
template <typename T, typename = decltype(SCN_DECLVAL(T&).begin())>
3355
constexpr auto impl_nonarray(priority_tag<1>)
3356
0
{
3357
0
    return tag_type<remove_cvref_t<decltype(*(SCN_DECLVAL(T&).begin()))>>{};
3358
0
}
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char const*>(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t const*>(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(scn::v3::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl_nonarray<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(scn::v3::detail::priority_tag<1ul>)
3359
template <typename T>
3360
constexpr auto impl_nonarray(priority_tag<0>)
3361
{
3362
    return tag_type<remove_cvref_t<decltype(*begin(SCN_DECLVAL(T&)))>>{};
3363
}
3364
3365
template <typename T,
3366
          typename = std::enable_if_t<ranges::range<remove_cvref_t<T>>>>
3367
constexpr auto impl()
3368
0
{
3369
0
    using T_nocvref = remove_cvref_t<T>;
3370
0
    if constexpr (std::is_array_v<T_nocvref>) {
3371
0
        return tag_type<std::remove_all_extents_t<T_nocvref>>{};
3372
0
    }
3373
0
    else {
3374
0
        return impl_nonarray<T_nocvref>(priority_tag<2>{});
3375
0
    }
3376
0
}
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::detail::basic_scan_buffer<char>::forward_iterator>, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::impl::take_width_view<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, void>()
Unexecuted instantiation: auto scn::v3::detail::char_t_fn::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, void>()
3377
3378
template <typename Range>
3379
using result = decltype(impl<Range>());
3380
}  // namespace char_t_fn
3381
3382
template <typename Range>
3383
using char_t = typename char_t_fn::result<Range>::type;
3384
3385
template <typename Range, typename = void>
3386
inline constexpr bool is_file_or_narrow_range_impl = false;
3387
template <>
3388
inline constexpr bool is_file_or_narrow_range_impl<std::FILE*, void> = true;
3389
template <typename Range>
3390
inline constexpr bool
3391
    is_file_or_narrow_range_impl<Range,
3392
                                 std::enable_if_t<ranges::range<Range>>> =
3393
        std::is_same_v<char_t<Range>, char>;
3394
3395
template <typename Range>
3396
inline constexpr bool is_file_or_narrow_range =
3397
    is_file_or_narrow_range_impl<remove_cvref_t<Range>>;
3398
3399
template <typename Range, typename = void>
3400
inline constexpr bool is_wide_range = false;
3401
template <typename Range>
3402
inline constexpr bool
3403
    is_wide_range<Range,
3404
                  std::enable_if_t<ranges::range<remove_cvref_t<Range>>>> =
3405
        std::is_same_v<char_t<Range>, wchar_t>;
3406
3407
template <typename R, bool Borrowed = ranges::borrowed_range<R>>
3408
struct borrowed_tail_subrange {
3409
    using type = ranges::subrange<ranges::iterator_t<R>, ranges::sentinel_t<R>>;
3410
};
3411
template <typename R>
3412
struct borrowed_tail_subrange<R, false> {
3413
    using type = ranges::dangling;
3414
};
3415
3416
/// Equivalent to
3417
/// `ranges::subrange<ranges::iterator_t<R>,
3418
/// ranges::sentinel_t<R>>` if `R` is a `borrowed_range`, and
3419
/// `ranges::dangling` otherwise.
3420
///
3421
/// Similar to `ranges::borrowed_subrange_t<R>`, expect this preserves
3422
/// the range sentinel.
3423
template <typename R>
3424
using borrowed_tail_subrange_t = typename borrowed_tail_subrange<R>::type;
3425
3426
}  // namespace detail
3427
3428
namespace ranges {
3429
template <typename CharT, typename Traits>
3430
inline constexpr bool
3431
    enable_borrowed_range<std::basic_string_view<CharT, Traits>> = true;
3432
}
3433
3434
/////////////////////////////////////////////////////////////////
3435
// Small generic algorithms
3436
/////////////////////////////////////////////////////////////////
3437
3438
namespace detail {
3439
3440
/**
3441
 * Implementation of `std::min_element` without including `<algorithm>`
3442
 */
3443
template <typename It>
3444
constexpr It min_element(It first, It last)
3445
{
3446
    if (first == last) {
3447
        return last;
3448
    }
3449
3450
    It smallest = first;
3451
    ++first;
3452
    for (; first != last; ++first) {
3453
        if (*first < *smallest) {
3454
            smallest = first;
3455
        }
3456
    }
3457
    return smallest;
3458
}
3459
3460
/**
3461
 * Implementation of `std::min` without including `<algorithm>`
3462
 */
3463
template <typename T>
3464
constexpr T min(T a, T b) noexcept
3465
{
3466
    return (b < a) ? b : a;
3467
}
3468
3469
template <bool IsConstexpr, typename T, typename Ptr = const T*>
3470
constexpr Ptr find(Ptr first, Ptr last, T value)
3471
{
3472
    for (; first != last; ++first) {
3473
        if (*first == value) {
3474
            return first;
3475
        }
3476
    }
3477
    return last;
3478
}
3479
3480
template <>
3481
inline const char* find<false, char>(const char* first,
3482
                                     const char* last,
3483
                                     char value)
3484
0
{
3485
0
    auto ptr = static_cast<const char*>(
3486
0
        std::memchr(first, value, static_cast<size_t>(last - first)));
3487
0
    return ptr != nullptr ? ptr : last;
3488
0
}
3489
3490
}  // namespace detail
3491
3492
/////////////////////////////////////////////////////////////////
3493
// Errors
3494
/////////////////////////////////////////////////////////////////
3495
3496
/**
3497
 * Error class.
3498
 * Used as a return value for functions without a success value.
3499
 *
3500
 * \ingroup result
3501
 */
3502
class SCN_TRIVIAL_ABI scan_error {
3503
public:
3504
    /// Error code
3505
    enum code {
3506
        /// No error
3507
        good = 0,
3508
        /// EOF
3509
        end_of_range,
3510
        /// Format string was invalid
3511
        invalid_format_string,
3512
        /// Scanned value was invalid for given type.
3513
        /// e.g. a period '.' when scanning for an int
3514
        invalid_scanned_value,
3515
        /// Scanned value was out of range for the desired type.
3516
        /// (e.g. `>2^32` for an `uint32_t`)
3517
        value_out_of_range,
3518
3519
        max_error
3520
    };
3521
3522
private:
3523
    using code_t = code;
3524
3525
public:
3526
    struct success_tag_t {};
3527
    static constexpr success_tag_t success_tag() noexcept
3528
0
    {
3529
0
        return {};
3530
0
    }
3531
3532
    /// Constructs an error with `code::good` and no message.
3533
157M
    constexpr scan_error() noexcept = default;
3534
0
    constexpr scan_error(success_tag_t) noexcept : scan_error() {}
3535
3536
    /// Constructs an error with `c` and `m`
3537
    constexpr scan_error(code_t c, const char* m) noexcept : m_msg(m), m_code(c)
3538
8.03M
    {
3539
8.03M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_code);
3540
8.03M
    }
3541
3542
    /// Evaluated to true if there was no error
3543
    constexpr explicit operator bool() const noexcept
3544
224M
    {
3545
224M
        return m_code == good;
3546
224M
    }
3547
3548
    constexpr explicit operator code_t() const noexcept
3549
0
    {
3550
0
        return m_code;
3551
0
    }
3552
3553
    /// Get error code
3554
    SCN_NODISCARD constexpr code_t code() const noexcept
3555
1.47M
    {
3556
1.47M
        return m_code;
3557
1.47M
    }
3558
    /// Get error message
3559
    SCN_NODISCARD constexpr auto msg() const noexcept -> const char*
3560
0
    {
3561
0
        return m_msg;
3562
0
    }
3563
3564
private:
3565
    const char* m_msg{nullptr};
3566
    code_t m_code{good};
3567
};
3568
3569
constexpr inline bool operator==(scan_error a, scan_error b) noexcept
3570
0
{
3571
0
    return a.code() == b.code();
3572
0
}
3573
constexpr inline bool operator!=(scan_error a, scan_error b) noexcept
3574
0
{
3575
0
    return !(a == b);
3576
0
}
3577
3578
constexpr inline bool operator==(scan_error a, enum scan_error::code b) noexcept
3579
1.47M
{
3580
1.47M
    return a.code() == b;
3581
1.47M
}
3582
constexpr inline bool operator!=(scan_error a, enum scan_error::code b) noexcept
3583
1.47M
{
3584
1.47M
    return !(a == b);
3585
1.47M
}
3586
3587
constexpr inline bool operator==(enum scan_error::code a, scan_error b) noexcept
3588
0
{
3589
0
    return a == b.code();
3590
0
}
3591
constexpr inline bool operator!=(enum scan_error::code a, scan_error b) noexcept
3592
0
{
3593
0
    return !(a == b);
3594
0
}
3595
3596
namespace detail {
3597
// Intentionally not constexpr, to give out a compile-time error
3598
scan_error handle_error(scan_error e);
3599
}  // namespace detail
3600
3601
/**
3602
 * An `expected<T, scan_error>`.
3603
 *
3604
 * Not a type alias to shorten template names
3605
 *
3606
 * \ingroup result
3607
 */
3608
template <typename T>
3609
struct scan_expected : public expected<T, scan_error> {
3610
    using expected<T, scan_error>::expected;
3611
3612
    scan_expected(const expected<T, scan_error>& other)
3613
        : expected<T, scan_error>(other)
3614
    {
3615
    }
3616
    scan_expected(expected<T, scan_error>&& other)
3617
        : expected<T, scan_error>(SCN_MOVE(other))
3618
6.87M
    {
3619
6.87M
    }
Unexecuted instantiation: scn::v3::scan_expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::scan_expected(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>&&)
scn::v3::scan_expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::scan_expected(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v3::scan_error>&&)
Line
Count
Source
3618
3.66k
    {
3619
3.66k
    }
scn::v3::scan_expected<char const*>::scan_expected(scn::v3::expected<char const*, scn::v3::scan_error>&&)
Line
Count
Source
3618
2.07M
    {
3619
2.07M
    }
scn::v3::scan_expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator>::scan_expected(scn::v3::expected<scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::scan_error>&&)
Line
Count
Source
3618
3.71M
    {
3619
3.71M
    }
Unexecuted instantiation: scn::v3::scan_expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t> >::scan_expected(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::ranges::default_sentinel_t>, scn::v3::scan_error>&&)
Unexecuted instantiation: scn::v3::scan_expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::scan_expected(scn::v3::expected<scn::v3::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v3::scan_error>&&)
scn::v3::scan_expected<wchar_t const*>::scan_expected(scn::v3::expected<wchar_t const*, scn::v3::scan_error>&&)
Line
Count
Source
3618
332k
    {
3619
332k
    }
scn::v3::scan_expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator>::scan_expected(scn::v3::expected<scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::scan_error>&&)
Line
Count
Source
3618
747k
    {
3619
747k
    }
3620
};
3621
3622
template <typename... Args>
3623
auto unexpected_scan_error(Args&&... args)
3624
859k
{
3625
859k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
859k
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [74]>(scn::v3::scan_error::code&&, char const (&) [74])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [41]>(scn::v3::scan_error::code&&, char const (&) [41])
Line
Count
Source
3624
126k
{
3625
126k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
126k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [51]>(scn::v3::scan_error::code&&, char const (&) [51])
Line
Count
Source
3624
64.5k
{
3625
64.5k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
64.5k
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [37]>(scn::v3::scan_error::code&&, char const (&) [37])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [20]>(scn::v3::scan_error::code&&, char const (&) [20])
Line
Count
Source
3624
1.28k
{
3625
1.28k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
1.28k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [35]>(scn::v3::scan_error::code&&, char const (&) [35])
Line
Count
Source
3624
15.4k
{
3625
15.4k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
15.4k
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [34]>(scn::v3::scan_error::code&&, char const (&) [34])
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [31]>(scn::v3::scan_error::code&&, char const (&) [31])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [38]>(scn::v3::scan_error::code&&, char const (&) [38])
Line
Count
Source
3624
29.3k
{
3625
29.3k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
29.3k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [14]>(scn::v3::scan_error::code&&, char const (&) [14])
Line
Count
Source
3624
10.6k
{
3625
10.6k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
10.6k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [32]>(scn::v3::scan_error::code&&, char const (&) [32])
Line
Count
Source
3624
4.12k
{
3625
4.12k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
4.12k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [36]>(scn::v3::scan_error::code&&, char const (&) [36])
Line
Count
Source
3624
288
{
3625
288
    return unexpected(scan_error{SCN_FWD(args)...});
3626
288
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [59]>(scn::v3::scan_error::code&&, char const (&) [59])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [52]>(scn::v3::scan_error::code&&, char const (&) [52])
Line
Count
Source
3624
54
{
3625
54
    return unexpected(scan_error{SCN_FWD(args)...});
3626
54
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [66]>(scn::v3::scan_error::code&&, char const (&) [66])
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [77]>(scn::v3::scan_error::code&&, char const (&) [77])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [40]>(scn::v3::scan_error::code&&, char const (&) [40])
Line
Count
Source
3624
6.62k
{
3625
6.62k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
6.62k
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [42]>(scn::v3::scan_error::code&&, char const (&) [42])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [47]>(scn::v3::scan_error::code&&, char const (&) [47])
Line
Count
Source
3624
7.69k
{
3625
7.69k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
7.69k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [23]>(scn::v3::scan_error::code&&, char const (&) [23])
Line
Count
Source
3624
44
{
3625
44
    return unexpected(scan_error{SCN_FWD(args)...});
3626
44
}
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [19]>(scn::v3::scan_error::code&&, char const (&) [19])
Unexecuted instantiation: auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [70]>(scn::v3::scan_error::code&&, char const (&) [70])
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [22]>(scn::v3::scan_error::code&&, char const (&) [22])
Line
Count
Source
3624
389k
{
3625
389k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
389k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [29]>(scn::v3::scan_error::code&&, char const (&) [29])
Line
Count
Source
3624
147k
{
3625
147k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
147k
}
auto scn::v3::unexpected_scan_error<scn::v3::scan_error::code, char const (&) [17]>(scn::v3::scan_error::code&&, char const (&) [17])
Line
Count
Source
3624
56.2k
{
3625
56.2k
    return unexpected(scan_error{SCN_FWD(args)...});
3626
56.2k
}
3627
3628
namespace detail {
3629
template <typename T>
3630
struct is_expected_impl<scan_expected<T>> : std::true_type {};
3631
}  // namespace detail
3632
3633
4.01M
#define SCN_TRY_IMPL_CONCAT(a, b)  a##b
3634
4.01M
#define SCN_TRY_IMPL_CONCAT2(a, b) SCN_TRY_IMPL_CONCAT(a, b)
3635
4.01M
#define SCN_TRY_TMP                SCN_TRY_IMPL_CONCAT2(_scn_try_tmp_, __LINE__)
3636
3637
#define SCN_TRY_ASSIGN(init, x)                        \
3638
249M
    auto&& SCN_TRY_TMP = (x);                          \
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
_ZZN3scn2v34impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E0_clISE_EEDaSP_
Line
Count
Source
3638
515k
    auto&& SCN_TRY_TMP = (x);                          \
_ZZN3scn2v34impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E_clISE_EEDaSP_
Line
Count
Source
3638
931k
    auto&& SCN_TRY_TMP = (x);                          \
_ZZN3scn2v34impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKcSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Line
Count
Source
3638
18
    auto&& SCN_TRY_TMP = (x);                          \
_ZZN3scn2v34impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKcSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Line
Count
Source
3638
702
    auto&& SCN_TRY_TMP = (x);                          \
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKcSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E0_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKcSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
_ZZN3scn2v34impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E0_clISE_EEDaSP_
Line
Count
Source
3638
36.9k
    auto&& SCN_TRY_TMP = (x);                          \
_ZZN3scn2v34impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E_clISE_EEDaSP_
Line
Count
Source
3638
91.8k
    auto&& SCN_TRY_TMP = (x);                          \
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKwSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKwSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKwSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E0_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v34impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKwSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E_clISB_EEDaSM_
3639
249M
    if (SCN_UNLIKELY(!SCN_TRY_TMP)) {                  \
3640
4.01M
        return ::scn::unexpected(SCN_TRY_TMP.error()); \
3641
4.01M
    }                                                  \
3642
249M
    init = *SCN_FWD(SCN_TRY_TMP);
3643
215M
#define SCN_TRY(name, x) SCN_TRY_ASSIGN(auto name, x)
3644
3645
#define SCN_TRY_ERR(name, x)          \
3646
    auto&& SCN_TRY_TMP = (x);         \
3647
    if (SCN_UNLIKELY(!SCN_TRY_TMP)) { \
3648
        return SCN_TRY_TMP.error();   \
3649
    }                                 \
3650
    auto name = *SCN_FWD(SCN_TRY_TMP);
3651
3652
/////////////////////////////////////////////////////////////////
3653
// string_view utilities
3654
/////////////////////////////////////////////////////////////////
3655
3656
namespace detail {
3657
3658
template <typename T>
3659
struct is_string_view : std::false_type {};
3660
template <typename CharT, typename Traits>
3661
struct is_string_view<std::basic_string_view<CharT, Traits>> : std::true_type {
3662
};
3663
3664
// workarounds for MSVC string_view debug iterators
3665
template <typename CharT>
3666
constexpr std::basic_string_view<CharT> make_string_view_from_iterators(
3667
    typename std::basic_string_view<CharT>::iterator first,
3668
    typename std::basic_string_view<CharT>::iterator last)
3669
436M
{
3670
436M
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3671
436M
                                          decltype(first), decltype(last)> &&
3672
436M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3673
436M
        return {first, last};
3674
436M
    }
3675
436M
    else {
3676
436M
        return {to_address(first), static_cast<size_t>(std::distance(
3677
436M
                                       to_address(first), to_address(last)))};
3678
436M
    }
3679
436M
}
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::make_string_view_from_iterators<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator, std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator)
Line
Count
Source
3669
26.6M
{
3670
26.6M
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3671
26.6M
                                          decltype(first), decltype(last)> &&
3672
26.6M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3673
26.6M
        return {first, last};
3674
26.6M
    }
3675
26.6M
    else {
3676
26.6M
        return {to_address(first), static_cast<size_t>(std::distance(
3677
26.6M
                                       to_address(first), to_address(last)))};
3678
26.6M
    }
3679
26.6M
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::make_string_view_from_iterators<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator)
Line
Count
Source
3669
409M
{
3670
409M
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3671
409M
                                          decltype(first), decltype(last)> &&
3672
409M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3673
409M
        return {first, last};
3674
409M
    }
3675
409M
    else {
3676
409M
        return {to_address(first), static_cast<size_t>(std::distance(
3677
409M
                                       to_address(first), to_address(last)))};
3678
409M
    }
3679
409M
}
3680
3681
template <typename CharT>
3682
constexpr std::basic_string_view<CharT> make_string_view_from_pointers(
3683
    const CharT* first,
3684
    const CharT* last)
3685
23.9M
{
3686
23.9M
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3687
23.9M
                                          const CharT*, const CharT*>) {
3688
23.9M
        return {first, last};
3689
23.9M
    }
3690
23.9M
    else {
3691
23.9M
        return {first, static_cast<size_t>(std::distance(first, last))};
3692
23.9M
    }
3693
23.9M
}
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::make_string_view_from_pointers<char>(char const*, char const*)
Line
Count
Source
3685
5.37M
{
3686
5.37M
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3687
5.37M
                                          const CharT*, const CharT*>) {
3688
5.37M
        return {first, last};
3689
5.37M
    }
3690
5.37M
    else {
3691
5.37M
        return {first, static_cast<size_t>(std::distance(first, last))};
3692
5.37M
    }
3693
5.37M
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::make_string_view_from_pointers<wchar_t>(wchar_t const*, wchar_t const*)
Line
Count
Source
3685
18.6M
{
3686
18.6M
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3687
18.6M
                                          const CharT*, const CharT*>) {
3688
18.6M
        return {first, last};
3689
18.6M
    }
3690
18.6M
    else {
3691
18.6M
        return {first, static_cast<size_t>(std::distance(first, last))};
3692
18.6M
    }
3693
18.6M
}
3694
3695
template <typename CharT>
3696
constexpr auto make_string_view_iterator(
3697
    std::basic_string_view<CharT> sv,
3698
    typename std::basic_string_view<CharT>::iterator it) ->
3699
    typename std::basic_string_view<CharT>::iterator
3700
30.0M
{
3701
30.0M
    if constexpr (std::is_constructible_v<
3702
30.0M
                      typename std::basic_string_view<CharT>::iterator,
3703
30.0M
                      decltype(it)> &&
3704
30.0M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3705
30.0M
        SCN_UNUSED(sv);
3706
30.0M
        return it;
3707
30.0M
    }
3708
30.0M
    else {
3709
30.0M
        return sv.begin() + std::distance(sv.data(), detail::to_address(it));
3710
30.0M
    }
3711
30.0M
}
std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator scn::v3::detail::make_string_view_iterator<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator)
Line
Count
Source
3700
30.0M
{
3701
30.0M
    if constexpr (std::is_constructible_v<
3702
30.0M
                      typename std::basic_string_view<CharT>::iterator,
3703
30.0M
                      decltype(it)> &&
3704
30.0M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3705
30.0M
        SCN_UNUSED(sv);
3706
30.0M
        return it;
3707
30.0M
    }
3708
30.0M
    else {
3709
30.0M
        return sv.begin() + std::distance(sv.data(), detail::to_address(it));
3710
30.0M
    }
3711
30.0M
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator scn::v3::detail::make_string_view_iterator<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator)
Line
Count
Source
3700
1.79k
{
3701
1.79k
    if constexpr (std::is_constructible_v<
3702
1.79k
                      typename std::basic_string_view<CharT>::iterator,
3703
1.79k
                      decltype(it)> &&
3704
1.79k
                  !SCN_MSVC_DEBUG_ITERATORS) {
3705
1.79k
        SCN_UNUSED(sv);
3706
1.79k
        return it;
3707
1.79k
    }
3708
1.79k
    else {
3709
1.79k
        return sv.begin() + std::distance(sv.data(), detail::to_address(it));
3710
1.79k
    }
3711
1.79k
}
3712
3713
template <typename CharT>
3714
constexpr auto make_string_view_iterator_from_pointer(
3715
    std::basic_string_view<CharT> sv,
3716
    const CharT* ptr) -> typename std::basic_string_view<CharT>::iterator
3717
{
3718
    if constexpr (std::is_constructible_v<
3719
                      typename std::basic_string_view<CharT>::iterator,
3720
                      const CharT*> &&
3721
                  !SCN_MSVC_DEBUG_ITERATORS) {
3722
        SCN_UNUSED(sv);
3723
        return ptr;
3724
    }
3725
    else {
3726
        return sv.begin() + std::distance(sv.data(), ptr);
3727
    }
3728
}
3729
3730
/////////////////////////////////////////////////////////////////
3731
// Lightweight Unicode facilities
3732
/////////////////////////////////////////////////////////////////
3733
3734
constexpr inline bool is_ascii_code_point(char32_t cp)
3735
0
{
3736
0
    return cp <= 0x7f;
3737
0
}
3738
3739
template <typename U8>
3740
constexpr std::size_t utf8_code_point_length_by_starting_code_unit(U8 ch)
3741
33.2M
{
3742
33.2M
    static_assert(sizeof(U8) == 1);
3743
3744
33.2M
    SCN_GCC_COMPAT_PUSH
3745
33.2M
    SCN_GCC_COMPAT_IGNORE("-Wsign-conversion")
3746
33.2M
    constexpr char lengths[] =
3747
33.2M
        "\1\1\1\1\1\1\1\1"  // highest bit is 0 -> single-byte
3748
33.2M
        "\1\1\1\1\1\1\1\1"
3749
33.2M
        "\0\0\0\0\0\0\0\0"  // highest bits 10 -> error, non-initial
3750
                            // byte
3751
33.2M
        "\2\2\2\2"          // highest bits 110 -> 2-byte cp
3752
33.2M
        "\3\3"              // highest bits 1110 -> 3-byte cp
3753
33.2M
        "\4";               // highest bits 11110 -> 4-byte cp
3754
33.2M
    return lengths[static_cast<unsigned char>(ch) >> 3];
3755
33.2M
    SCN_GCC_COMPAT_POP
3756
33.2M
}
3757
3758
template <typename U16>
3759
constexpr std::size_t utf16_code_point_length_by_starting_code_unit(U16 ch)
3760
{
3761
    static_assert(sizeof(U16) == 2);
3762
3763
    const auto lead = static_cast<uint16_t>(0xffff & ch);
3764
    if (lead >= 0xd800 && lead <= 0xdbff) {
3765
        // high surrogate
3766
        return 2;
3767
    }
3768
    if (lead >= 0xdc00 && lead <= 0xdfff) {
3769
        // unpaired low surrogate
3770
        return 0;
3771
    }
3772
    return 1;
3773
}
3774
3775
template <typename U>
3776
constexpr std::size_t code_point_length_by_starting_code_unit(U ch)
3777
1.07G
{
3778
1.07G
    if constexpr (sizeof(U) == 1) {
3779
1.03G
        return utf8_code_point_length_by_starting_code_unit(ch);
3780
1.03G
    }
3781
1.03G
    else if constexpr (sizeof(U) == 2) {
3782
1.03G
        return utf16_code_point_length_by_starting_code_unit(ch);
3783
1.03G
    }
3784
1.03G
    else {
3785
        // utf-32
3786
1.03G
        static_assert(sizeof(U) == 4);
3787
1.03G
        SCN_UNUSED(ch);
3788
1.03G
        return 1;
3789
1.03G
    }
3790
1.07G
}
unsigned long scn::v3::detail::code_point_length_by_starting_code_unit<char>(char)
Line
Count
Source
3777
33.2M
{
3778
33.2M
    if constexpr (sizeof(U) == 1) {
3779
33.2M
        return utf8_code_point_length_by_starting_code_unit(ch);
3780
33.2M
    }
3781
33.2M
    else if constexpr (sizeof(U) == 2) {
3782
33.2M
        return utf16_code_point_length_by_starting_code_unit(ch);
3783
33.2M
    }
3784
33.2M
    else {
3785
        // utf-32
3786
33.2M
        static_assert(sizeof(U) == 4);
3787
33.2M
        SCN_UNUSED(ch);
3788
33.2M
        return 1;
3789
33.2M
    }
3790
33.2M
}
unsigned long scn::v3::detail::code_point_length_by_starting_code_unit<wchar_t>(wchar_t)
Line
Count
Source
3777
1.03G
{
3778
1.03G
    if constexpr (sizeof(U) == 1) {
3779
1.03G
        return utf8_code_point_length_by_starting_code_unit(ch);
3780
1.03G
    }
3781
1.03G
    else if constexpr (sizeof(U) == 2) {
3782
1.03G
        return utf16_code_point_length_by_starting_code_unit(ch);
3783
1.03G
    }
3784
1.03G
    else {
3785
        // utf-32
3786
1.03G
        static_assert(sizeof(U) == 4);
3787
1.03G
        SCN_UNUSED(ch);
3788
1.03G
        return 1;
3789
1.03G
    }
3790
1.03G
}
3791
3792
inline constexpr char32_t invalid_code_point = 0x110000;
3793
3794
inline constexpr char32_t decode_utf8_code_point_exhaustive(
3795
    std::string_view input)
3796
30.1M
{
3797
30.1M
    SCN_EXPECT(!input.empty() && input.size() <= 4);
3798
3799
30.1M
    const auto is_trailing_code_unit = [](char ch) {
3800
3.21M
        return static_cast<unsigned char>(ch) >> 6 == 0x2;
3801
3.21M
    };
3802
3803
30.1M
    if (input.size() == 1) {
3804
27.7M
        if (static_cast<unsigned char>(input[0]) >= 0x80) {
3805
3.04k
            SCN_UNLIKELY_ATTR
3806
3.04k
            return invalid_code_point;
3807
3.04k
        }
3808
27.7M
        return static_cast<char32_t>(input[0]);
3809
27.7M
    }
3810
3811
2.44M
    if (input.size() == 2) {
3812
1.68M
        if ((static_cast<unsigned char>(input[0]) & 0xe0) != 0xc0) {
3813
272
            SCN_UNLIKELY_ATTR
3814
272
            return invalid_code_point;
3815
272
        }
3816
1.67M
        if (!is_trailing_code_unit(input[1])) {
3817
127k
            SCN_UNLIKELY_ATTR
3818
127k
            return invalid_code_point;
3819
127k
        }
3820
3821
1.55M
        char32_t cp{};
3822
1.55M
        cp |= (static_cast<char32_t>(input[0]) & 0x1f) << 6;
3823
1.55M
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 0;
3824
1.55M
        return cp;
3825
1.67M
    }
3826
3827
761k
    if (input.size() == 3) {
3828
528k
        if ((static_cast<unsigned char>(input[0]) & 0xf0) != 0xe0) {
3829
176
            SCN_UNLIKELY_ATTR
3830
176
            return invalid_code_point;
3831
176
        }
3832
528k
        if (!is_trailing_code_unit(input[1]) ||
3833
528k
            !is_trailing_code_unit(input[2])) {
3834
103k
            SCN_UNLIKELY_ATTR
3835
103k
            return invalid_code_point;
3836
103k
        }
3837
3838
425k
        char32_t cp{};
3839
425k
        cp |= (static_cast<char32_t>(input[0]) & 0x0f) << 12;
3840
425k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 6;
3841
425k
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 0;
3842
425k
        return cp;
3843
528k
    }
3844
3845
233k
    if (input.size() == 4) {
3846
233k
        if ((static_cast<unsigned char>(input[0]) & 0xf8) != 0xf0) {
3847
0
            SCN_UNLIKELY_ATTR
3848
0
            return invalid_code_point;
3849
0
        }
3850
233k
        if (static_cast<unsigned char>(input[0]) > 0xf4) {
3851
23.5k
            SCN_UNLIKELY_ATTR
3852
23.5k
            return invalid_code_point;
3853
23.5k
        }
3854
209k
        if (!is_trailing_code_unit(input[1]) ||
3855
209k
            !is_trailing_code_unit(input[2]) ||
3856
209k
            !is_trailing_code_unit(input[3])) {
3857
61.3k
            SCN_UNLIKELY_ATTR
3858
61.3k
            return invalid_code_point;
3859
61.3k
        }
3860
3861
148k
        char32_t cp{};
3862
148k
        cp |= (static_cast<char32_t>(input[0]) & 0x07) << 18;
3863
148k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 12;
3864
148k
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 6;
3865
148k
        cp |= (static_cast<char32_t>(input[3]) & 0x3f) << 0;
3866
148k
        return cp;
3867
209k
    }
3868
3869
0
#if !SCN_GCC || SCN_GCC >= SCN_COMPILER(8, 0, 0)
3870
    // gcc 7 thinks we'll get here, even when we won't
3871
0
    SCN_EXPECT(false);
3872
0
#endif
3873
0
    SCN_UNREACHABLE;
3874
0
}
3875
3876
inline constexpr char32_t decode_utf8_code_point_exhaustive_valid(
3877
    std::string_view input)
3878
604k
{
3879
604k
    SCN_EXPECT(!input.empty() && input.size() <= 4);
3880
3881
604k
    const auto is_trailing_code_unit = [](char ch) {
3882
55.6k
        return static_cast<unsigned char>(ch) >> 6 == 0x2;
3883
55.6k
    };
3884
3885
604k
    if (input.size() == 1) {
3886
552k
        SCN_EXPECT(static_cast<unsigned char>(input[0]) < 0x80);
3887
552k
        return static_cast<char32_t>(input[0]);
3888
552k
    }
3889
3890
52.0k
    if (input.size() == 2) {
3891
49.3k
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xe0) == 0xc0);
3892
49.3k
        SCN_EXPECT(is_trailing_code_unit(input[1]));
3893
3894
49.3k
        char32_t cp{};
3895
49.3k
        cp |= (static_cast<char32_t>(input[0]) & 0x1f) << 6;
3896
49.3k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 0;
3897
49.3k
        return cp;
3898
49.3k
    }
3899
3900
2.63k
    if (input.size() == 3) {
3901
1.68k
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xf0) == 0xe0);
3902
1.68k
        SCN_EXPECT(is_trailing_code_unit(input[1]));
3903
1.68k
        SCN_EXPECT(is_trailing_code_unit(input[2]));
3904
3905
1.68k
        char32_t cp{};
3906
1.68k
        cp |= (static_cast<char32_t>(input[0]) & 0x0f) << 12;
3907
1.68k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 6;
3908
1.68k
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 0;
3909
1.68k
        return cp;
3910
1.68k
    }
3911
3912
956
    if (input.size() == 4) {
3913
956
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xf8) == 0xf0);
3914
956
        SCN_EXPECT(static_cast<unsigned char>(input[0]) <= 0xf4);
3915
956
        SCN_EXPECT(is_trailing_code_unit(input[1]));
3916
956
        SCN_EXPECT(is_trailing_code_unit(input[2]));
3917
956
        SCN_EXPECT(is_trailing_code_unit(input[3]));
3918
3919
956
        char32_t cp{};
3920
956
        cp |= (static_cast<char32_t>(input[0]) & 0x07) << 18;
3921
956
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 12;
3922
956
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 6;
3923
956
        cp |= (static_cast<char32_t>(input[3]) & 0x3f) << 0;
3924
956
        return cp;
3925
956
    }
3926
3927
0
#if !SCN_GCC || SCN_GCC >= SCN_COMPILER(8, 0, 0)
3928
    // gcc 7 thinks we'll get here, even when we won't
3929
0
    SCN_EXPECT(false);
3930
0
#endif
3931
0
    SCN_UNREACHABLE;
3932
0
}
3933
3934
template <typename CharT>
3935
inline constexpr char32_t decode_utf16_code_point_exhaustive(
3936
    std::basic_string_view<CharT> input)
3937
{
3938
    static_assert(sizeof(CharT) == 2);
3939
3940
    SCN_EXPECT(!input.empty() && input.size() <= 2);
3941
3942
    if (input.size() == 1) {
3943
        return static_cast<char32_t>(input[0]);
3944
    }
3945
3946
    const auto lead = static_cast<uint32_t>(input[0]);
3947
    const auto trail = static_cast<uint32_t>(input[1]);
3948
    if (lead < 0xd800 || lead > 0xdbff || trail < 0xdc00 || trail > 0xdfff) {
3949
        SCN_UNLIKELY_ATTR
3950
        return invalid_code_point;
3951
    }
3952
3953
    const auto cp = ((lead - 0xd800) << 10) | (trail - 0xdc00);
3954
    return static_cast<char32_t>(cp + 0x10000);
3955
}
3956
3957
template <typename CharT>
3958
inline constexpr char32_t decode_utf16_code_point_exhaustive_valid(
3959
    std::basic_string_view<CharT> input)
3960
{
3961
    static_assert(sizeof(CharT) == 2);
3962
3963
    SCN_EXPECT(!input.empty() && input.size() <= 2);
3964
3965
    if (input.size() == 1) {
3966
        return static_cast<char32_t>(input[0]);
3967
    }
3968
3969
    const auto lead = static_cast<uint32_t>(input[0]);
3970
    const auto trail = static_cast<uint32_t>(input[1]);
3971
    SCN_EXPECT(lead >= 0xd800);
3972
    SCN_EXPECT(lead <= 0xdbff);
3973
    SCN_EXPECT(trail >= 0xdc00);
3974
    SCN_EXPECT(trail <= 0xdfff);
3975
3976
    const auto cp = ((lead - 0xd800) << 10) | (trail - 0xdc00);
3977
    return static_cast<char32_t>(cp + 0x10000);
3978
}
3979
3980
template <typename CharT>
3981
inline constexpr char32_t decode_code_point_exhaustive(
3982
    std::basic_string_view<CharT> input)
3983
1.06G
{
3984
1.06G
    if constexpr (sizeof(CharT) == 1) {
3985
1.03G
        return decode_utf8_code_point_exhaustive(input);
3986
1.03G
    }
3987
1.03G
    else if constexpr (sizeof(CharT) == 2) {
3988
1.03G
        return decode_utf16_code_point_exhaustive(input);
3989
1.03G
    }
3990
1.03G
    else {
3991
1.03G
        SCN_EXPECT(input.size() == 1);
3992
1.03G
        auto cp = static_cast<char32_t>(input.front());
3993
1.03G
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
3994
1.74M
            return invalid_code_point;
3995
1.74M
        }
3996
1.03G
        return cp;
3997
1.03G
    }
3998
1.06G
}
char32_t scn::v3::detail::decode_code_point_exhaustive<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
3983
30.1M
{
3984
30.1M
    if constexpr (sizeof(CharT) == 1) {
3985
30.1M
        return decode_utf8_code_point_exhaustive(input);
3986
30.1M
    }
3987
30.1M
    else if constexpr (sizeof(CharT) == 2) {
3988
30.1M
        return decode_utf16_code_point_exhaustive(input);
3989
30.1M
    }
3990
30.1M
    else {
3991
30.1M
        SCN_EXPECT(input.size() == 1);
3992
30.1M
        auto cp = static_cast<char32_t>(input.front());
3993
30.1M
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
3994
30.1M
            return invalid_code_point;
3995
30.1M
        }
3996
30.1M
        return cp;
3997
30.1M
    }
3998
30.1M
}
char32_t scn::v3::detail::decode_code_point_exhaustive<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
3983
1.03G
{
3984
1.03G
    if constexpr (sizeof(CharT) == 1) {
3985
1.03G
        return decode_utf8_code_point_exhaustive(input);
3986
1.03G
    }
3987
1.03G
    else if constexpr (sizeof(CharT) == 2) {
3988
1.03G
        return decode_utf16_code_point_exhaustive(input);
3989
1.03G
    }
3990
1.03G
    else {
3991
1.03G
        SCN_EXPECT(input.size() == 1);
3992
1.03G
        auto cp = static_cast<char32_t>(input.front());
3993
1.03G
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
3994
1.74M
            return invalid_code_point;
3995
1.74M
        }
3996
1.03G
        return cp;
3997
1.03G
    }
3998
1.03G
}
3999
4000
template <typename CharT>
4001
inline constexpr char32_t decode_code_point_exhaustive_valid(
4002
    std::basic_string_view<CharT> input)
4003
604k
{
4004
604k
    if constexpr (sizeof(CharT) == 1) {
4005
0
        return decode_utf8_code_point_exhaustive_valid(input);
4006
0
    }
4007
0
    else if constexpr (sizeof(CharT) == 2) {
4008
0
        return decode_utf16_code_point_exhaustive_valid(input);
4009
0
    }
4010
0
    else {
4011
0
        SCN_EXPECT(input.size() == 1);
4012
0
        return static_cast<char32_t>(input.front());
4013
0
    }
4014
604k
}
char32_t scn::v3::detail::decode_code_point_exhaustive_valid<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
4003
604k
{
4004
604k
    if constexpr (sizeof(CharT) == 1) {
4005
604k
        return decode_utf8_code_point_exhaustive_valid(input);
4006
604k
    }
4007
604k
    else if constexpr (sizeof(CharT) == 2) {
4008
604k
        return decode_utf16_code_point_exhaustive_valid(input);
4009
604k
    }
4010
604k
    else {
4011
604k
        SCN_EXPECT(input.size() == 1);
4012
604k
        return static_cast<char32_t>(input.front());
4013
604k
    }
4014
604k
}
Unexecuted instantiation: char32_t scn::v3::detail::decode_code_point_exhaustive_valid<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4015
4016
}  // namespace detail
4017
4018
/////////////////////////////////////////////////////////////////
4019
// scan_buffer
4020
/////////////////////////////////////////////////////////////////
4021
4022
namespace detail {
4023
template <typename CharT>
4024
class basic_scan_buffer {
4025
public:
4026
    class forward_iterator;
4027
4028
    using char_type = CharT;
4029
    using range_type =
4030
        ranges::subrange<forward_iterator, ranges::default_sentinel_t>;
4031
4032
    basic_scan_buffer(const basic_scan_buffer&) = delete;
4033
    basic_scan_buffer& operator=(const basic_scan_buffer&) = delete;
4034
    basic_scan_buffer(basic_scan_buffer&&) = delete;
4035
    basic_scan_buffer& operator=(basic_scan_buffer&&) = delete;
4036
23.6M
    virtual ~basic_scan_buffer() = default;
scn::v3::detail::basic_scan_buffer<char>::~basic_scan_buffer()
Line
Count
Source
4036
4.57M
    virtual ~basic_scan_buffer() = default;
scn::v3::detail::basic_scan_buffer<wchar_t>::~basic_scan_buffer()
Line
Count
Source
4036
19.0M
    virtual ~basic_scan_buffer() = default;
4037
4038
    virtual bool fill() = 0;
4039
4040
    virtual void sync(std::ptrdiff_t position)
4041
23.6M
    {
4042
23.6M
        SCN_UNUSED(position);
4043
23.6M
    }
scn::v3::detail::basic_scan_buffer<char>::sync(long)
Line
Count
Source
4041
4.57M
    {
4042
4.57M
        SCN_UNUSED(position);
4043
4.57M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::sync(long)
Line
Count
Source
4041
19.0M
    {
4042
19.0M
        SCN_UNUSED(position);
4043
19.0M
    }
4044
4045
    void sync_all()
4046
1.08M
    {
4047
1.08M
        sync(0);
4048
1.08M
    }
scn::v3::detail::basic_scan_buffer<char>::sync_all()
Line
Count
Source
4046
360k
    {
4047
360k
        sync(0);
4048
360k
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::sync_all()
Line
Count
Source
4046
721k
    {
4047
721k
        sync(0);
4048
721k
    }
4049
4050
    SCN_NODISCARD std::ptrdiff_t chars_available() const
4051
198G
    {
4052
198G
        return m_putback_buffer.size() + m_current_view.size();
4053
198G
    }
scn::v3::detail::basic_scan_buffer<char>::chars_available() const
Line
Count
Source
4051
407M
    {
4052
407M
        return m_putback_buffer.size() + m_current_view.size();
4053
407M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::chars_available() const
Line
Count
Source
4051
197G
    {
4052
197G
        return m_putback_buffer.size() + m_current_view.size();
4053
197G
    }
4054
4055
    SCN_NODISCARD std::basic_string_view<CharT> current_view() const
4056
0
    {
4057
0
        return m_current_view;
4058
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::current_view() const
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::current_view() const
4059
4060
    SCN_NODISCARD std::basic_string<CharT>& putback_buffer()
4061
0
    {
4062
0
        return m_putback_buffer;
4063
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::putback_buffer()
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::putback_buffer()
4064
    SCN_NODISCARD const std::basic_string<CharT>& putback_buffer() const
4065
    {
4066
        return m_putback_buffer;
4067
    }
4068
4069
    SCN_NODISCARD std::basic_string_view<CharT> get_segment_starting_at(
4070
        std::ptrdiff_t pos) const
4071
72.0M
    {
4072
72.0M
        if (SCN_UNLIKELY(
4073
72.0M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4074
42.7M
            return std::basic_string_view<CharT>(m_putback_buffer).substr(pos);
4075
42.7M
        }
4076
29.3M
        const auto start = pos - m_putback_buffer.size();
4077
29.3M
        SCN_EXPECT(start <= m_current_view.size());
4078
29.3M
        return m_current_view.substr(start);
4079
29.3M
    }
scn::v3::detail::basic_scan_buffer<char>::get_segment_starting_at(long) const
Line
Count
Source
4071
16.4M
    {
4072
16.4M
        if (SCN_UNLIKELY(
4073
16.4M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4074
6.07M
            return std::basic_string_view<CharT>(m_putback_buffer).substr(pos);
4075
6.07M
        }
4076
10.4M
        const auto start = pos - m_putback_buffer.size();
4077
10.4M
        SCN_EXPECT(start <= m_current_view.size());
4078
10.4M
        return m_current_view.substr(start);
4079
10.4M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::get_segment_starting_at(long) const
Line
Count
Source
4071
55.5M
    {
4072
55.5M
        if (SCN_UNLIKELY(
4073
55.5M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4074
36.6M
            return std::basic_string_view<CharT>(m_putback_buffer).substr(pos);
4075
36.6M
        }
4076
18.9M
        const auto start = pos - m_putback_buffer.size();
4077
18.9M
        SCN_EXPECT(start <= m_current_view.size());
4078
18.9M
        return m_current_view.substr(start);
4079
18.9M
    }
4080
4081
    SCN_NODISCARD CharT get_character_at(std::ptrdiff_t pos) const
4082
608M
    {
4083
608M
        if (SCN_UNLIKELY(
4084
608M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4085
287M
            return m_putback_buffer[pos];
4086
287M
        }
4087
320M
        const auto start = pos - m_putback_buffer.size();
4088
320M
        SCN_EXPECT(start < m_current_view.size());
4089
320M
        return m_current_view[start];
4090
320M
    }
scn::v3::detail::basic_scan_buffer<char>::get_character_at(long) const
Line
Count
Source
4082
90.2M
    {
4083
90.2M
        if (SCN_UNLIKELY(
4084
90.2M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4085
56.9M
            return m_putback_buffer[pos];
4086
56.9M
        }
4087
33.2M
        const auto start = pos - m_putback_buffer.size();
4088
33.2M
        SCN_EXPECT(start < m_current_view.size());
4089
33.2M
        return m_current_view[start];
4090
33.2M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::get_character_at(long) const
Line
Count
Source
4082
517M
    {
4083
517M
        if (SCN_UNLIKELY(
4084
517M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4085
230M
            return m_putback_buffer[pos];
4086
230M
        }
4087
286M
        const auto start = pos - m_putback_buffer.size();
4088
286M
        SCN_EXPECT(start < m_current_view.size());
4089
286M
        return m_current_view[start];
4090
286M
    }
4091
4092
    SCN_NODISCARD bool is_contiguous() const
4093
70.8M
    {
4094
70.8M
        return m_is_contiguous;
4095
70.8M
    }
scn::v3::detail::basic_scan_buffer<char>::is_contiguous() const
Line
Count
Source
4093
13.7M
    {
4094
13.7M
        return m_is_contiguous;
4095
13.7M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::is_contiguous() const
Line
Count
Source
4093
57.1M
    {
4094
57.1M
        return m_is_contiguous;
4095
57.1M
    }
4096
4097
    SCN_NODISCARD auto get_contiguous() const
4098
0
    {
4099
0
        SCN_EXPECT(is_contiguous());
4100
0
        return ranges::subrange<const CharT*>{
4101
0
            current_view().data(),
4102
0
            current_view().data() + current_view().size()};
4103
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::get_contiguous() const
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::get_contiguous() const
4104
4105
    SCN_NODISCARD range_type get();
4106
4107
protected:
4108
    friend class forward_iterator;
4109
4110
    struct contiguous_tag {};
4111
    struct non_contiguous_tag {};
4112
4113
    basic_scan_buffer(contiguous_tag, std::basic_string_view<char_type> sv)
4114
        : m_current_view(sv), m_is_contiguous(true)
4115
0
    {
4116
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::basic_scan_buffer(scn::v3::detail::basic_scan_buffer<char>::contiguous_tag, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::basic_scan_buffer(scn::v3::detail::basic_scan_buffer<wchar_t>::contiguous_tag, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4117
4118
    basic_scan_buffer(non_contiguous_tag,
4119
                      std::basic_string_view<char_type> sv = {})
4120
        : m_current_view(sv), m_is_contiguous(false)
4121
23.6M
    {
4122
23.6M
    }
scn::v3::detail::basic_scan_buffer<char>::basic_scan_buffer(scn::v3::detail::basic_scan_buffer<char>::non_contiguous_tag, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
4121
4.57M
    {
4122
4.57M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::basic_scan_buffer(scn::v3::detail::basic_scan_buffer<wchar_t>::non_contiguous_tag, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
4121
19.0M
    {
4122
19.0M
    }
4123
4124
    basic_scan_buffer(bool is_contiguous, std::basic_string_view<char_type> sv)
4125
        : m_current_view(sv), m_is_contiguous(is_contiguous)
4126
    {
4127
    }
4128
4129
    std::basic_string_view<char_type> m_current_view{};
4130
    std::basic_string<char_type> m_putback_buffer{};
4131
    bool m_is_contiguous{false};
4132
};
4133
4134
template <typename CharT>
4135
class basic_scan_buffer<CharT>::forward_iterator {
4136
public:
4137
    using value_type = CharT;
4138
    using reference = CharT;
4139
    using pointer = CharT*;
4140
    using difference_type = std::ptrdiff_t;
4141
    using iterator_category = std::forward_iterator_tag;
4142
4143
    forward_iterator() = default;
4144
4145
    forward_iterator(basic_scan_buffer<CharT>* parent, std::ptrdiff_t pos)
4146
        : m_begin(parent), m_end(nullptr), m_position(pos)
4147
23.6M
    {
4148
23.6M
        SCN_EXPECT(parent);
4149
23.6M
        SCN_EXPECT(!parent->is_contiguous());
4150
23.6M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::forward_iterator(scn::v3::detail::basic_scan_buffer<char>*, long)
Line
Count
Source
4147
4.57M
    {
4148
4.57M
        SCN_EXPECT(parent);
4149
4.57M
        SCN_EXPECT(!parent->is_contiguous());
4150
4.57M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::forward_iterator(scn::v3::detail::basic_scan_buffer<wchar_t>*, long)
Line
Count
Source
4147
19.0M
    {
4148
19.0M
        SCN_EXPECT(parent);
4149
19.0M
        SCN_EXPECT(!parent->is_contiguous());
4150
19.0M
    }
4151
4152
    forward_iterator(std::basic_string_view<CharT> view, std::ptrdiff_t pos)
4153
        : m_begin(const_cast<CharT*>(view.data())),
4154
          m_end(const_cast<CharT*>(view.data() + view.size())),
4155
          m_position(pos)
4156
0
    {
4157
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::forward_iterator::forward_iterator(std::__1::basic_string_view<char, std::__1::char_traits<char> >, long)
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::forward_iterator(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, long)
4158
4159
    std::ptrdiff_t position() const
4160
95.5M
    {
4161
95.5M
        return m_position;
4162
95.5M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::position() const
Line
Count
Source
4160
28.1M
    {
4161
28.1M
        return m_position;
4162
28.1M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::position() const
Line
Count
Source
4160
67.4M
    {
4161
67.4M
        return m_position;
4162
67.4M
    }
4163
4164
    bool stores_parent() const
4165
397G
    {
4166
397G
        return m_end == nullptr;
4167
397G
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::stores_parent() const
Line
Count
Source
4165
987M
    {
4166
987M
        return m_end == nullptr;
4167
987M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::stores_parent() const
Line
Count
Source
4165
396G
    {
4166
396G
        return m_end == nullptr;
4167
396G
    }
4168
4169
    basic_scan_buffer<CharT>* parent()
4170
8.48M
    {
4171
8.48M
        SCN_EXPECT(stores_parent());
4172
8.48M
        return static_cast<basic_scan_buffer<CharT>*>(m_begin);
4173
8.48M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::parent()
Line
Count
Source
4170
7.60M
    {
4171
7.60M
        SCN_EXPECT(stores_parent());
4172
7.60M
        return static_cast<basic_scan_buffer<CharT>*>(m_begin);
4173
7.60M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::parent()
Line
Count
Source
4170
880k
    {
4171
880k
        SCN_EXPECT(stores_parent());
4172
880k
        return static_cast<basic_scan_buffer<CharT>*>(m_begin);
4173
880k
    }
4174
    const basic_scan_buffer<CharT>* parent() const
4175
199G
    {
4176
199G
        SCN_EXPECT(stores_parent());
4177
199G
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4178
199G
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::parent() const
Line
Count
Source
4175
549M
    {
4176
549M
        SCN_EXPECT(stores_parent());
4177
549M
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4178
549M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::parent() const
Line
Count
Source
4175
198G
    {
4176
198G
        SCN_EXPECT(stores_parent());
4177
198G
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4178
198G
    }
4179
4180
    std::basic_string_view<CharT> contiguous_segment() const
4181
72.0M
    {
4182
72.0M
        if (!stores_parent()) {
4183
0
            return make_string_view_from_pointers(
4184
0
                static_cast<const CharT*>(m_begin) + position(),
4185
0
                static_cast<const CharT*>(m_end));
4186
0
        }
4187
72.0M
        return parent()->get_segment_starting_at(position());
4188
72.0M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::contiguous_segment() const
Line
Count
Source
4181
16.4M
    {
4182
16.4M
        if (!stores_parent()) {
4183
0
            return make_string_view_from_pointers(
4184
0
                static_cast<const CharT*>(m_begin) + position(),
4185
0
                static_cast<const CharT*>(m_end));
4186
0
        }
4187
16.4M
        return parent()->get_segment_starting_at(position());
4188
16.4M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::contiguous_segment() const
Line
Count
Source
4181
55.5M
    {
4182
55.5M
        if (!stores_parent()) {
4183
0
            return make_string_view_from_pointers(
4184
0
                static_cast<const CharT*>(m_begin) + position(),
4185
0
                static_cast<const CharT*>(m_end));
4186
0
        }
4187
55.5M
        return parent()->get_segment_starting_at(position());
4188
55.5M
    }
4189
    auto to_contiguous_segment_iterator() const
4190
    {
4191
        return contiguous_segment().data();
4192
    }
4193
4194
    forward_iterator& operator++()
4195
196G
    {
4196
196G
        ++m_position;
4197
196G
        (void)read_at_position();
4198
196G
        return *this;
4199
196G
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::operator++()
Line
Count
Source
4195
149M
    {
4196
149M
        ++m_position;
4197
149M
        (void)read_at_position();
4198
149M
        return *this;
4199
149M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::operator++()
Line
Count
Source
4195
196G
    {
4196
196G
        ++m_position;
4197
196G
        (void)read_at_position();
4198
196G
        return *this;
4199
196G
    }
4200
4201
    forward_iterator operator++(int)
4202
    {
4203
        auto copy = *this;
4204
        operator++();
4205
        return copy;
4206
    }
4207
4208
    CharT operator*() const
4209
608M
    {
4210
608M
        SCN_EXPECT(m_begin);
4211
4212
608M
        if (!stores_parent()) {
4213
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4214
0
            SCN_EXPECT(ptr != m_end);
4215
0
            return *ptr;
4216
0
        }
4217
4218
608M
        auto res = read_at_position();
4219
608M
        SCN_EXPECT(res);
4220
608M
        return parent()->get_character_at(m_position);
4221
608M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::operator*() const
Line
Count
Source
4209
90.2M
    {
4210
90.2M
        SCN_EXPECT(m_begin);
4211
4212
90.2M
        if (!stores_parent()) {
4213
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4214
0
            SCN_EXPECT(ptr != m_end);
4215
0
            return *ptr;
4216
0
        }
4217
4218
90.2M
        auto res = read_at_position();
4219
90.2M
        SCN_EXPECT(res);
4220
90.2M
        return parent()->get_character_at(m_position);
4221
90.2M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::operator*() const
Line
Count
Source
4209
517M
    {
4210
517M
        SCN_EXPECT(m_begin);
4211
4212
517M
        if (!stores_parent()) {
4213
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4214
0
            SCN_EXPECT(ptr != m_end);
4215
0
            return *ptr;
4216
0
        }
4217
4218
517M
        auto res = read_at_position();
4219
517M
        SCN_EXPECT(res);
4220
517M
        return parent()->get_character_at(m_position);
4221
517M
    }
4222
4223
    forward_iterator& batch_advance(std::ptrdiff_t n)
4224
165k
    {
4225
165k
        SCN_EXPECT(n >= 0);
4226
165k
        m_position += n;
4227
165k
        return *this;
4228
165k
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::batch_advance(long)
Line
Count
Source
4224
165k
    {
4225
165k
        SCN_EXPECT(n >= 0);
4226
165k
        m_position += n;
4227
165k
        return *this;
4228
165k
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::batch_advance(long)
Line
Count
Source
4224
260
    {
4225
260
        SCN_EXPECT(n >= 0);
4226
260
        m_position += n;
4227
260
        return *this;
4228
260
    }
4229
4230
    forward_iterator& batch_advance_to(std::ptrdiff_t i)
4231
0
    {
4232
0
        SCN_EXPECT(i >= m_position);
4233
0
        m_position = i;
4234
0
        return *this;
4235
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<char>::forward_iterator::batch_advance_to(long)
Unexecuted instantiation: scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::batch_advance_to(long)
4236
4237
    friend bool operator==(const forward_iterator& lhs,
4238
                           const forward_iterator& rhs)
4239
196G
    {
4240
196G
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4241
196G
    }
scn::v3::detail::operator==(scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
4239
82.0M
    {
4240
82.0M
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4241
82.0M
    }
scn::v3::detail::operator==(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
4239
196G
    {
4240
196G
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4241
196G
    }
4242
    friend bool operator!=(const forward_iterator& lhs,
4243
                           const forward_iterator& rhs)
4244
196G
    {
4245
196G
        return !(lhs == rhs);
4246
196G
    }
scn::v3::detail::operator!=(scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
4244
74.7M
    {
4245
74.7M
        return !(lhs == rhs);
4246
74.7M
    }
scn::v3::detail::operator!=(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
4244
196G
    {
4245
196G
        return !(lhs == rhs);
4246
196G
    }
4247
4248
    friend bool operator==(const forward_iterator& x,
4249
                           ranges::default_sentinel_t)
4250
274M
    {
4251
274M
        return x.is_at_end();
4252
274M
    }
scn::v3::detail::operator==(scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v3::ranges::default_sentinel_t)
Line
Count
Source
4250
33.1M
    {
4251
33.1M
        return x.is_at_end();
4252
33.1M
    }
scn::v3::detail::operator==(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v3::ranges::default_sentinel_t)
Line
Count
Source
4250
241M
    {
4251
241M
        return x.is_at_end();
4252
241M
    }
4253
    friend bool operator==(ranges::default_sentinel_t,
4254
                           const forward_iterator& x)
4255
    {
4256
        return x.is_at_end();
4257
    }
4258
4259
    friend bool operator!=(const forward_iterator& x,
4260
                           ranges::default_sentinel_t)
4261
357M
    {
4262
357M
        return !x.is_at_end();
4263
357M
    }
scn::v3::detail::operator!=(scn::v3::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v3::ranges::default_sentinel_t)
Line
Count
Source
4261
44.5M
    {
4262
44.5M
        return !x.is_at_end();
4263
44.5M
    }
scn::v3::detail::operator!=(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v3::ranges::default_sentinel_t)
Line
Count
Source
4261
312M
    {
4262
312M
        return !x.is_at_end();
4263
312M
    }
4264
    friend bool operator!=(ranges::default_sentinel_t,
4265
                           const forward_iterator& x)
4266
    {
4267
        return !x.is_at_end();
4268
    }
4269
4270
private:
4271
    friend class basic_scan_buffer<CharT>;
4272
4273
    SCN_NODISCARD bool read_at_position() const
4274
197G
    {
4275
197G
        SCN_EXPECT(m_begin);
4276
4277
197G
        if (!stores_parent()) {
4278
0
            return true;
4279
0
        }
4280
4281
197G
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4282
197G
            return true;
4283
197G
        }
4284
4285
695M
        while (m_position >= parent()->chars_available()) {
4286
348M
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4287
1.03M
                return false;
4288
1.03M
            }
4289
348M
        }
4290
347M
        return true;
4291
348M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::read_at_position() const
Line
Count
Source
4274
317M
    {
4275
317M
        SCN_EXPECT(m_begin);
4276
4277
317M
        if (!stores_parent()) {
4278
0
            return true;
4279
0
        }
4280
4281
317M
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4282
275M
            return true;
4283
275M
        }
4284
4285
83.2M
        while (m_position >= parent()->chars_available()) {
4286
41.9M
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4287
708k
                return false;
4288
708k
            }
4289
41.9M
        }
4290
41.2M
        return true;
4291
41.9M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::read_at_position() const
Line
Count
Source
4274
197G
    {
4275
197G
        SCN_EXPECT(m_begin);
4276
4277
197G
        if (!stores_parent()) {
4278
0
            return true;
4279
0
        }
4280
4281
197G
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4282
196G
            return true;
4283
196G
        }
4284
4285
612M
        while (m_position >= parent()->chars_available()) {
4286
306M
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4287
324k
                return false;
4288
324k
            }
4289
306M
        }
4290
306M
        return true;
4291
306M
    }
4292
4293
    SCN_NODISCARD bool is_at_end() const
4294
631M
    {
4295
631M
        if (m_end) {
4296
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4297
0
        }
4298
631M
        if (!m_begin) {
4299
0
            return true;
4300
0
        }
4301
631M
        return !read_at_position();
4302
631M
    }
scn::v3::detail::basic_scan_buffer<char>::forward_iterator::is_at_end() const
Line
Count
Source
4294
77.6M
    {
4295
77.6M
        if (m_end) {
4296
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4297
0
        }
4298
77.6M
        if (!m_begin) {
4299
0
            return true;
4300
0
        }
4301
77.6M
        return !read_at_position();
4302
77.6M
    }
scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator::is_at_end() const
Line
Count
Source
4294
554M
    {
4295
554M
        if (m_end) {
4296
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4297
0
        }
4298
554M
        if (!m_begin) {
4299
0
            return true;
4300
0
        }
4301
554M
        return !read_at_position();
4302
554M
    }
4303
4304
    // If m_end is null, m_begin points to the parent scan_buffer
4305
    // Otherwise, [m_begin, m_end) is the range of this iterator (and of
4306
    // the entire range)
4307
    mutable void* m_begin{nullptr};
4308
    mutable void* m_end{nullptr};
4309
    std::ptrdiff_t m_position{0};
4310
};
4311
4312
template <typename CharT>
4313
SCN_NODISCARD auto basic_scan_buffer<CharT>::get() -> range_type
4314
23.6M
{
4315
23.6M
    if (is_contiguous()) {
4316
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4317
0
                                ranges::default_sentinel};
4318
0
    }
4319
23.6M
    return ranges::subrange{forward_iterator{this, 0},
4320
23.6M
                            ranges::default_sentinel};
4321
23.6M
}
scn::v3::detail::basic_scan_buffer<char>::get()
Line
Count
Source
4314
4.57M
{
4315
4.57M
    if (is_contiguous()) {
4316
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4317
0
                                ranges::default_sentinel};
4318
0
    }
4319
4.57M
    return ranges::subrange{forward_iterator{this, 0},
4320
4.57M
                            ranges::default_sentinel};
4321
4.57M
}
scn::v3::detail::basic_scan_buffer<wchar_t>::get()
Line
Count
Source
4314
19.0M
{
4315
19.0M
    if (is_contiguous()) {
4316
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4317
0
                                ranges::default_sentinel};
4318
0
    }
4319
19.0M
    return ranges::subrange{forward_iterator{this, 0},
4320
19.0M
                            ranges::default_sentinel};
4321
19.0M
}
4322
4323
static_assert(ranges::forward_range<scan_buffer::range_type>);
4324
4325
template <typename CharT>
4326
class basic_scan_string_buffer : public basic_scan_buffer<CharT> {
4327
    using base = basic_scan_buffer<CharT>;
4328
4329
public:
4330
    basic_scan_string_buffer(std::basic_string_view<CharT> sv)
4331
        : base(typename base::contiguous_tag{}, sv)
4332
0
    {
4333
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_string_buffer<char>::basic_scan_string_buffer(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v3::detail::basic_scan_string_buffer<wchar_t>::basic_scan_string_buffer(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4334
4335
    bool fill() override
4336
0
    {
4337
0
        SCN_EXPECT(false);
4338
0
        SCN_UNREACHABLE;
4339
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_string_buffer<char>::fill()
Unexecuted instantiation: scn::v3::detail::basic_scan_string_buffer<wchar_t>::fill()
4340
};
4341
4342
template <typename CharT>
4343
basic_scan_string_buffer(std::basic_string_view<CharT>)
4344
    -> basic_scan_string_buffer<CharT>;
4345
4346
template <typename CharT>
4347
class basic_scan_forward_buffer_base : public basic_scan_buffer<CharT> {
4348
    using base = basic_scan_buffer<CharT>;
4349
4350
protected:
4351
    basic_scan_forward_buffer_base() : base(typename base::non_contiguous_tag{})
4352
23.6M
    {
4353
23.6M
    }
scn::v3::detail::basic_scan_forward_buffer_base<char>::basic_scan_forward_buffer_base()
Line
Count
Source
4352
4.57M
    {
4353
4.57M
    }
scn::v3::detail::basic_scan_forward_buffer_base<wchar_t>::basic_scan_forward_buffer_base()
Line
Count
Source
4352
19.0M
    {
4353
19.0M
    }
4354
};
4355
4356
template <typename Range>
4357
class basic_scan_forward_buffer_impl
4358
    : public basic_scan_forward_buffer_base<detail::char_t<Range>> {
4359
    static_assert(ranges::range<const Range> && std::is_object_v<Range>);
4360
4361
    using _char_type = detail::char_t<Range>;
4362
    using base = basic_scan_forward_buffer_base<_char_type>;
4363
4364
public:
4365
    using char_type = _char_type;
4366
    using range_type = Range;
4367
    using iterator = ranges::iterator_t<const Range>;
4368
    using sentinel = ranges::sentinel_t<const Range>;
4369
4370
    template <
4371
        typename R,
4372
        std::enable_if_t<is_not_self<R, basic_scan_forward_buffer_impl> &&
4373
                         std::is_convertible_v<R, const Range&>>* = nullptr>
4374
    basic_scan_forward_buffer_impl(R&& r)
4375
        : m_range(std::addressof(static_cast<const Range&>(SCN_FWD(r)))),
4376
          m_cursor(ranges::begin(*m_range))
4377
23.6M
    {
4378
23.6M
    }
scn::v3::detail::basic_scan_forward_buffer_impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::basic_scan_forward_buffer_impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, (void*)0>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&)
Line
Count
Source
4377
4.57M
    {
4378
4.57M
    }
scn::v3::detail::basic_scan_forward_buffer_impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::basic_scan_forward_buffer_impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, (void*)0>(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&)
Line
Count
Source
4377
19.0M
    {
4378
19.0M
    }
4379
4380
    bool fill() override
4381
348M
    {
4382
348M
        if (m_cursor == ranges::end(*m_range)) {
4383
1.03M
            return false;
4384
1.03M
        }
4385
347M
        if (!this->m_current_view.empty()) {
4386
323M
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4387
323M
                                          this->m_current_view.begin(),
4388
323M
                                          this->m_current_view.end());
4389
323M
        }
4390
347M
        m_latest = *m_cursor;
4391
347M
        ++m_cursor;
4392
347M
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4393
347M
        return true;
4394
348M
    }
scn::v3::detail::basic_scan_forward_buffer_impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::fill()
Line
Count
Source
4381
41.9M
    {
4382
41.9M
        if (m_cursor == ranges::end(*m_range)) {
4383
708k
            return false;
4384
708k
        }
4385
41.2M
        if (!this->m_current_view.empty()) {
4386
36.8M
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4387
36.8M
                                          this->m_current_view.begin(),
4388
36.8M
                                          this->m_current_view.end());
4389
36.8M
        }
4390
41.2M
        m_latest = *m_cursor;
4391
41.2M
        ++m_cursor;
4392
41.2M
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4393
41.2M
        return true;
4394
41.9M
    }
scn::v3::detail::basic_scan_forward_buffer_impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::fill()
Line
Count
Source
4381
306M
    {
4382
306M
        if (m_cursor == ranges::end(*m_range)) {
4383
324k
            return false;
4384
324k
        }
4385
306M
        if (!this->m_current_view.empty()) {
4386
287M
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4387
287M
                                          this->m_current_view.begin(),
4388
287M
                                          this->m_current_view.end());
4389
287M
        }
4390
306M
        m_latest = *m_cursor;
4391
306M
        ++m_cursor;
4392
306M
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4393
306M
        return true;
4394
306M
    }
4395
4396
private:
4397
    const Range* m_range;
4398
    iterator m_cursor;
4399
    char_type m_latest{};
4400
};
4401
4402
template <typename R>
4403
basic_scan_forward_buffer_impl(const R&) -> basic_scan_forward_buffer_impl<R>;
4404
4405
class scan_file_buffer : public basic_scan_buffer<char> {
4406
    using base = basic_scan_buffer<char>;
4407
4408
public:
4409
    scan_file_buffer(std::FILE* file);
4410
    ~scan_file_buffer();
4411
4412
    bool fill() override;
4413
    void sync(std::ptrdiff_t position) override;
4414
4415
private:
4416
    std::FILE* m_file;
4417
    std::optional<char_type> m_latest{std::nullopt};
4418
};
4419
4420
template <typename CharT>
4421
class basic_scan_ref_buffer : public basic_scan_buffer<CharT> {
4422
    using base = basic_scan_buffer<CharT>;
4423
4424
public:
4425
    basic_scan_ref_buffer(base& other, std::ptrdiff_t starting_pos)
4426
        : base(other.is_contiguous(), std::basic_string_view<CharT>{}),
4427
          m_other(&other),
4428
          m_starting_pos(starting_pos)
4429
    {
4430
        this->m_current_view = other.get_segment_starting_at(starting_pos);
4431
        m_fill_needs_to_propagate = other.get_segment_starting_at(0).end() ==
4432
                                    this->m_current_view.end();
4433
    }
4434
4435
    basic_scan_ref_buffer(std::basic_string_view<CharT> view)
4436
        : base(true, view), m_other(nullptr)
4437
    {
4438
    }
4439
4440
    bool fill() override
4441
0
    {
4442
0
        if (!m_other) {
4443
0
            return false;
4444
0
        }
4445
0
        SCN_EXPECT(m_starting_pos >= 0);
4446
0
4447
0
        if (m_fill_needs_to_propagate) {
4448
0
            auto ret = m_other->fill();
4449
0
            this->m_current_view = m_other->current_view();
4450
0
            this->m_putback_buffer =
4451
0
                m_other->putback_buffer().substr(m_starting_pos);
4452
0
            return ret;
4453
0
        }
4454
0
4455
0
        m_fill_needs_to_propagate = true;
4456
0
        this->m_putback_buffer = std::basic_string<CharT>{this->m_current_view};
4457
0
        this->m_current_view = m_other->current_view();
4458
0
        return true;
4459
0
    }
Unexecuted instantiation: scn::v3::detail::basic_scan_ref_buffer<char>::fill()
Unexecuted instantiation: scn::v3::detail::basic_scan_ref_buffer<wchar_t>::fill()
4460
4461
private:
4462
    base* m_other;
4463
    std::ptrdiff_t m_starting_pos{-1};
4464
    bool m_fill_needs_to_propagate{false};
4465
};
4466
4467
template <typename CharT>
4468
basic_scan_ref_buffer(basic_scan_buffer<CharT>&, std::ptrdiff_t)
4469
    -> basic_scan_ref_buffer<CharT>;
4470
4471
template <typename CharT>
4472
basic_scan_ref_buffer(std::basic_string_view<CharT>)
4473
    -> basic_scan_ref_buffer<CharT>;
4474
4475
template <typename Range>
4476
auto make_string_scan_buffer(const Range& range)
4477
{
4478
    return basic_scan_string_buffer(
4479
        std::basic_string_view{ranges::data(range), ranges::size(range)});
4480
}
4481
4482
template <typename Range>
4483
auto make_forward_scan_buffer(const Range& range)
4484
23.6M
{
4485
23.6M
    return basic_scan_forward_buffer_impl(range);
4486
23.6M
}
auto scn::v3::detail::make_forward_scan_buffer<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&)
Line
Count
Source
4484
4.57M
{
4485
4.57M
    return basic_scan_forward_buffer_impl(range);
4486
4.57M
}
auto scn::v3::detail::make_forward_scan_buffer<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&)
Line
Count
Source
4484
19.0M
{
4485
19.0M
    return basic_scan_forward_buffer_impl(range);
4486
19.0M
}
4487
4488
inline auto make_file_scan_buffer(std::FILE* file)
4489
0
{
4490
0
    return scan_file_buffer(file);
4491
0
}
4492
}  // namespace detail
4493
4494
/////////////////////////////////////////////////////////////////
4495
// make_scan_buffer
4496
/////////////////////////////////////////////////////////////////
4497
4498
/**
4499
 * \defgroup scannable Scannable sources
4500
 *
4501
 * \brief Description of the `scannable_range` and `scannable_source`
4502
 * concepts.
4503
 *
4504
 * A range is considered scannable, if it models at least `forward_range`,
4505
 * and its character type is correct (its value type is the same as the one
4506
 * of the format string).
4507
 * If the range additionally models `contiguous_range` and `sized_range`,
4508
 * additional optimizations are enabled.
4509
 *
4510
 * \code{.cpp}
4511
 * // Exposition only
4512
 * template <typename Range, typename CharT>
4513
 * concept scannable_range =
4514
 *     ranges::forward_range<Range> &&
4515
 *     std::same_as<ranges::range_value_t<Range>, CharT>;
4516
 * \endcode
4517
 *
4518
 * Additionally, files (`std::FILE*`) can be scanned from.
4519
 * Files are always considered to be narrow (`char`-oriented).
4520
 * Thus, the entire concept is:
4521
 *
4522
 * \code{.cpp}
4523
 * // Exposition only
4524
 * template <typename Source, typename CharT>
4525
 * concept scannable_source =
4526
 *   (std::same_as<std::remove_cvref_t<Source>, std::FILE*> &&
4527
 *    std::same_as<CharT, char>) ||
4528
 *   scannable_range<Source, CharT>;
4529
 * \endcode
4530
 */
4531
4532
/**
4533
 * Tag type to indicate an invalid range given to `scn::scan`
4534
 *
4535
 * \ingroup scannable
4536
 */
4537
struct invalid_input_range {};
4538
4539
struct invalid_char_type : invalid_input_range {};
4540
struct custom_char_traits : invalid_input_range {};
4541
struct file_marker_found : invalid_input_range {};
4542
struct insufficient_range : invalid_input_range {};
4543
4544
namespace detail {
4545
template <typename CharT>
4546
inline constexpr bool is_valid_char_type =
4547
    std::is_same_v<std::remove_const_t<CharT>, char> ||
4548
    std::is_same_v<std::remove_const_t<CharT>, wchar_t>;
4549
4550
namespace _make_scan_buffer {
4551
// buffer -> ref_buffer
4552
inline auto impl(scan_buffer::range_type r, priority_tag<4>) noexcept
4553
    -> basic_scan_ref_buffer<char>
4554
0
{
4555
0
    if (!r.begin().stores_parent()) {
4556
0
        return basic_scan_ref_buffer{r.begin().contiguous_segment()};
4557
0
    }
4558
0
    return basic_scan_ref_buffer{*r.begin().parent(), r.begin().position()};
4559
0
}
4560
inline auto impl(wscan_buffer::range_type r, priority_tag<4>) noexcept
4561
    -> basic_scan_ref_buffer<wchar_t>
4562
0
{
4563
0
    if (!r.begin().stores_parent()) {
4564
0
        return basic_scan_ref_buffer{r.begin().contiguous_segment()};
4565
0
    }
4566
0
    return basic_scan_ref_buffer{*r.begin().parent(), r.begin().position()};
4567
0
}
4568
4569
// string_view -> string_buffer
4570
template <typename CharT>
4571
auto impl(std::basic_string_view<CharT> r, priority_tag<3>) noexcept
4572
396k
{
4573
396k
    if constexpr (is_valid_char_type<CharT>) {
4574
396k
        return r;
4575
        // return make_string_scan_buffer(r);
4576
396k
    }
4577
396k
    else {
4578
396k
        return invalid_char_type{};
4579
396k
    }
4580
396k
}
auto scn::v3::detail::_make_scan_buffer::impl<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v3::detail::priority_tag<3ul>)
Line
Count
Source
4572
132k
{
4573
132k
    if constexpr (is_valid_char_type<CharT>) {
4574
132k
        return r;
4575
        // return make_string_scan_buffer(r);
4576
132k
    }
4577
132k
    else {
4578
132k
        return invalid_char_type{};
4579
132k
    }
4580
132k
}
auto scn::v3::detail::_make_scan_buffer::impl<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v3::detail::priority_tag<3ul>)
Line
Count
Source
4572
264k
{
4573
264k
    if constexpr (is_valid_char_type<CharT>) {
4574
264k
        return r;
4575
        // return make_string_scan_buffer(r);
4576
264k
    }
4577
264k
    else {
4578
264k
        return invalid_char_type{};
4579
264k
    }
4580
264k
}
4581
4582
// string& -> string_buffer
4583
template <typename CharT, typename Traits, typename Allocator>
4584
auto impl(const std::basic_string<CharT, Traits, Allocator>& r,
4585
          priority_tag<3>) noexcept
4586
{
4587
    if constexpr (!is_valid_char_type<CharT>) {
4588
        return invalid_char_type{};
4589
    }
4590
    else if constexpr (!std::is_same_v<Traits, std::char_traits<CharT>>) {
4591
        return custom_char_traits{};
4592
    }
4593
    else {
4594
        return std::basic_string_view<CharT>{r};
4595
    }
4596
}
4597
4598
// String literals:
4599
// CharT(&)[] -> string_buffer
4600
template <typename CharT,
4601
          std::size_t N,
4602
          std::enable_if_t<is_valid_char_type<CharT>>* = nullptr>
4603
auto impl(const CharT (&r)[N], priority_tag<3>) noexcept
4604
{
4605
    return std::basic_string_view<CharT>{r, N - 1};
4606
}
4607
4608
// FILE* -> file_buffer
4609
inline auto impl(std::FILE* file, priority_tag<3>)
4610
0
{
4611
0
    return make_file_scan_buffer(file);
4612
0
}
4613
4614
// contiguous + sized -> string_buffer
4615
template <typename Range,
4616
          std::enable_if_t<ranges::contiguous_range<Range> &&
4617
                           ranges::sized_range<Range>>* = nullptr>
4618
auto impl(const Range& r, priority_tag<2>)
4619
42.1M
{
4620
42.1M
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
4621
42.1M
        return std::basic_string_view{ranges::data(r), ranges::size(r)};
4622
42.1M
    }
4623
42.1M
    else {
4624
42.1M
        return invalid_char_type{};
4625
42.1M
    }
4626
42.1M
}
auto scn::v3::detail::_make_scan_buffer::impl<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, (void*)0>(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
4619
4.76M
{
4620
4.76M
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
4621
4.76M
        return std::basic_string_view{ranges::data(r), ranges::size(r)};
4622
4.76M
    }
4623
4.76M
    else {
4624
4.76M
        return invalid_char_type{};
4625
4.76M
    }
4626
4.76M
}
auto scn::v3::detail::_make_scan_buffer::impl<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, (void*)0>(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v3::detail::priority_tag<2ul>)
Line
Count
Source
4619
37.3M
{
4620
37.3M
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
4621
37.3M
        return std::basic_string_view{ranges::data(r), ranges::size(r)};
4622
37.3M
    }
4623
37.3M
    else {
4624
37.3M
        return invalid_char_type{};
4625
37.3M
    }
4626
37.3M
}
4627
4628
// !contiguous + random-access + iterator can be made into a ptr
4629
// for MSVC debug iterators
4630
//   -> string_buffer
4631
template <typename Range,
4632
          std::enable_if_t<!ranges::contiguous_range<Range> &&
4633
                           ranges::random_access_range<Range> &&
4634
                           can_make_address_from_iterator<
4635
                               ranges::iterator_t<Range>>>* = nullptr>
4636
auto impl(const Range& r, priority_tag<1>)
4637
{
4638
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
4639
        return make_string_view_from_pointers(to_address(ranges::begin(r)),
4640
                                              to_address(ranges::end(r)));
4641
    }
4642
    else {
4643
        return invalid_char_type{};
4644
    }
4645
}
4646
4647
// forward -> forward_buffer<R>
4648
template <typename Range>
4649
auto impl(const Range& r, priority_tag<0>)
4650
23.6M
{
4651
23.6M
    if constexpr (std::is_same_v<Range, file_marker>) {
4652
23.6M
        return file_marker_found{};
4653
23.6M
    }
4654
23.6M
    else if constexpr (!ranges::forward_range<Range>) {
4655
23.6M
        if constexpr (ranges::range<Range>) {
4656
23.6M
            return insufficient_range{};
4657
23.6M
        }
4658
23.6M
        else {
4659
23.6M
            return invalid_input_range{};
4660
23.6M
        }
4661
23.6M
    }
4662
23.6M
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
4663
23.6M
        return invalid_char_type{};
4664
23.6M
    }
4665
23.6M
    else {
4666
23.6M
        return make_forward_scan_buffer(r);
4667
23.6M
    }
4668
23.6M
}
auto scn::v3::detail::_make_scan_buffer::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, scn::v3::detail::priority_tag<0ul>)
Line
Count
Source
4650
4.57M
{
4651
4.57M
    if constexpr (std::is_same_v<Range, file_marker>) {
4652
4.57M
        return file_marker_found{};
4653
4.57M
    }
4654
4.57M
    else if constexpr (!ranges::forward_range<Range>) {
4655
4.57M
        if constexpr (ranges::range<Range>) {
4656
4.57M
            return insufficient_range{};
4657
4.57M
        }
4658
4.57M
        else {
4659
4.57M
            return invalid_input_range{};
4660
4.57M
        }
4661
4.57M
    }
4662
4.57M
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
4663
4.57M
        return invalid_char_type{};
4664
4.57M
    }
4665
4.57M
    else {
4666
4.57M
        return make_forward_scan_buffer(r);
4667
4.57M
    }
4668
4.57M
}
auto scn::v3::detail::_make_scan_buffer::impl<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, scn::v3::detail::priority_tag<0ul>)
Line
Count
Source
4650
19.0M
{
4651
19.0M
    if constexpr (std::is_same_v<Range, file_marker>) {
4652
19.0M
        return file_marker_found{};
4653
19.0M
    }
4654
19.0M
    else if constexpr (!ranges::forward_range<Range>) {
4655
19.0M
        if constexpr (ranges::range<Range>) {
4656
19.0M
            return insufficient_range{};
4657
19.0M
        }
4658
19.0M
        else {
4659
19.0M
            return invalid_input_range{};
4660
19.0M
        }
4661
19.0M
    }
4662
19.0M
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
4663
19.0M
        return invalid_char_type{};
4664
19.0M
    }
4665
19.0M
    else {
4666
19.0M
        return make_forward_scan_buffer(r);
4667
19.0M
    }
4668
19.0M
}
4669
}  // namespace _make_scan_buffer
4670
4671
template <typename Range>
4672
inline constexpr bool is_scannable_range =
4673
    !std::is_base_of_v<invalid_input_range,
4674
                       decltype(_make_scan_buffer::impl(
4675
                                    SCN_DECLVAL(const Range&)),
4676
                                priority_tag<4>{})>;
4677
4678
template <typename Range>
4679
auto make_scan_buffer(const Range& range)
4680
66.1M
{
4681
66.1M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
66.1M
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
66.1M
                  "\n"
4685
66.1M
                  "Unsupported range type given as input to a scanning "
4686
66.1M
                  "function.\n"
4687
66.1M
                  "A range needs to have a character type (value type) "
4688
66.1M
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
66.1M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
66.1M
                  "to be included.\n"
4691
66.1M
                  "See the scnlib documentation for more details.");
4692
66.1M
    static_assert(
4693
66.1M
        !std::is_same_v<T, custom_char_traits>,
4694
66.1M
        "\n"
4695
66.1M
        "Unsupported range type given as input to a scanning "
4696
66.1M
        "function.\n"
4697
66.1M
        "String types (std::basic_string, and std::basic_string_view) "
4698
66.1M
        "need to use std::char_traits. Strings with custom Traits are "
4699
66.1M
        "not supported.");
4700
66.1M
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
66.1M
                  "\n"
4702
66.1M
                  "Unsupported range type given as input to a scanning "
4703
66.1M
                  "function.\n"
4704
66.1M
                  "file_marker_found cannot be used as an "
4705
66.1M
                  "source range type to scn::scan.\n"
4706
66.1M
                  "To read from stdin, use scn::input or scn::prompt, "
4707
66.1M
                  "and do not provide an explicit source range, "
4708
66.1M
                  "or use scn::scan with a FILE* directly.");
4709
66.1M
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
66.1M
                  "\n"
4711
66.1M
                  "Unsupported range type given as input to a scanning "
4712
66.1M
                  "function.\n"
4713
66.1M
                  "In order to be scannable, a range needs to satisfy "
4714
66.1M
                  "`forward_range`. `input_range` is not sufficient.");
4715
66.1M
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
66.1M
                  "\n"
4717
66.1M
                  "Unsupported range type given as input to a scanning "
4718
66.1M
                  "function.\n"
4719
66.1M
                  "A range needs to model forward_range and have a valid "
4720
66.1M
                  "character type (char or wchar_t) to be scannable.\n"
4721
66.1M
                  "Examples of scannable ranges are std::string, "
4722
66.1M
                  "std::string_view, "
4723
66.1M
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
66.1M
                  "See the scnlib documentation for more details.");
4725
4726
66.1M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
66.1M
}
auto scn::v3::detail::make_scan_buffer<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> > const&)
Line
Count
Source
4680
132k
{
4681
132k
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
132k
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
132k
                  "\n"
4685
132k
                  "Unsupported range type given as input to a scanning "
4686
132k
                  "function.\n"
4687
132k
                  "A range needs to have a character type (value type) "
4688
132k
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
132k
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
132k
                  "to be included.\n"
4691
132k
                  "See the scnlib documentation for more details.");
4692
132k
    static_assert(
4693
132k
        !std::is_same_v<T, custom_char_traits>,
4694
132k
        "\n"
4695
132k
        "Unsupported range type given as input to a scanning "
4696
132k
        "function.\n"
4697
132k
        "String types (std::basic_string, and std::basic_string_view) "
4698
132k
        "need to use std::char_traits. Strings with custom Traits are "
4699
132k
        "not supported.");
4700
132k
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
132k
                  "\n"
4702
132k
                  "Unsupported range type given as input to a scanning "
4703
132k
                  "function.\n"
4704
132k
                  "file_marker_found cannot be used as an "
4705
132k
                  "source range type to scn::scan.\n"
4706
132k
                  "To read from stdin, use scn::input or scn::prompt, "
4707
132k
                  "and do not provide an explicit source range, "
4708
132k
                  "or use scn::scan with a FILE* directly.");
4709
132k
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
132k
                  "\n"
4711
132k
                  "Unsupported range type given as input to a scanning "
4712
132k
                  "function.\n"
4713
132k
                  "In order to be scannable, a range needs to satisfy "
4714
132k
                  "`forward_range`. `input_range` is not sufficient.");
4715
132k
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
132k
                  "\n"
4717
132k
                  "Unsupported range type given as input to a scanning "
4718
132k
                  "function.\n"
4719
132k
                  "A range needs to model forward_range and have a valid "
4720
132k
                  "character type (char or wchar_t) to be scannable.\n"
4721
132k
                  "Examples of scannable ranges are std::string, "
4722
132k
                  "std::string_view, "
4723
132k
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
132k
                  "See the scnlib documentation for more details.");
4725
4726
132k
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
132k
}
auto scn::v3::detail::make_scan_buffer<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > const&)
Line
Count
Source
4680
264k
{
4681
264k
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
264k
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
264k
                  "\n"
4685
264k
                  "Unsupported range type given as input to a scanning "
4686
264k
                  "function.\n"
4687
264k
                  "A range needs to have a character type (value type) "
4688
264k
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
264k
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
264k
                  "to be included.\n"
4691
264k
                  "See the scnlib documentation for more details.");
4692
264k
    static_assert(
4693
264k
        !std::is_same_v<T, custom_char_traits>,
4694
264k
        "\n"
4695
264k
        "Unsupported range type given as input to a scanning "
4696
264k
        "function.\n"
4697
264k
        "String types (std::basic_string, and std::basic_string_view) "
4698
264k
        "need to use std::char_traits. Strings with custom Traits are "
4699
264k
        "not supported.");
4700
264k
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
264k
                  "\n"
4702
264k
                  "Unsupported range type given as input to a scanning "
4703
264k
                  "function.\n"
4704
264k
                  "file_marker_found cannot be used as an "
4705
264k
                  "source range type to scn::scan.\n"
4706
264k
                  "To read from stdin, use scn::input or scn::prompt, "
4707
264k
                  "and do not provide an explicit source range, "
4708
264k
                  "or use scn::scan with a FILE* directly.");
4709
264k
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
264k
                  "\n"
4711
264k
                  "Unsupported range type given as input to a scanning "
4712
264k
                  "function.\n"
4713
264k
                  "In order to be scannable, a range needs to satisfy "
4714
264k
                  "`forward_range`. `input_range` is not sufficient.");
4715
264k
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
264k
                  "\n"
4717
264k
                  "Unsupported range type given as input to a scanning "
4718
264k
                  "function.\n"
4719
264k
                  "A range needs to model forward_range and have a valid "
4720
264k
                  "character type (char or wchar_t) to be scannable.\n"
4721
264k
                  "Examples of scannable ranges are std::string, "
4722
264k
                  "std::string_view, "
4723
264k
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
264k
                  "See the scnlib documentation for more details.");
4725
4726
264k
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
264k
}
auto scn::v3::detail::make_scan_buffer<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> const&)
Line
Count
Source
4680
4.76M
{
4681
4.76M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
4.76M
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
4.76M
                  "\n"
4685
4.76M
                  "Unsupported range type given as input to a scanning "
4686
4.76M
                  "function.\n"
4687
4.76M
                  "A range needs to have a character type (value type) "
4688
4.76M
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
4.76M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
4.76M
                  "to be included.\n"
4691
4.76M
                  "See the scnlib documentation for more details.");
4692
4.76M
    static_assert(
4693
4.76M
        !std::is_same_v<T, custom_char_traits>,
4694
4.76M
        "\n"
4695
4.76M
        "Unsupported range type given as input to a scanning "
4696
4.76M
        "function.\n"
4697
4.76M
        "String types (std::basic_string, and std::basic_string_view) "
4698
4.76M
        "need to use std::char_traits. Strings with custom Traits are "
4699
4.76M
        "not supported.");
4700
4.76M
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
4.76M
                  "\n"
4702
4.76M
                  "Unsupported range type given as input to a scanning "
4703
4.76M
                  "function.\n"
4704
4.76M
                  "file_marker_found cannot be used as an "
4705
4.76M
                  "source range type to scn::scan.\n"
4706
4.76M
                  "To read from stdin, use scn::input or scn::prompt, "
4707
4.76M
                  "and do not provide an explicit source range, "
4708
4.76M
                  "or use scn::scan with a FILE* directly.");
4709
4.76M
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
4.76M
                  "\n"
4711
4.76M
                  "Unsupported range type given as input to a scanning "
4712
4.76M
                  "function.\n"
4713
4.76M
                  "In order to be scannable, a range needs to satisfy "
4714
4.76M
                  "`forward_range`. `input_range` is not sufficient.");
4715
4.76M
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
4.76M
                  "\n"
4717
4.76M
                  "Unsupported range type given as input to a scanning "
4718
4.76M
                  "function.\n"
4719
4.76M
                  "A range needs to model forward_range and have a valid "
4720
4.76M
                  "character type (char or wchar_t) to be scannable.\n"
4721
4.76M
                  "Examples of scannable ranges are std::string, "
4722
4.76M
                  "std::string_view, "
4723
4.76M
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
4.76M
                  "See the scnlib documentation for more details.");
4725
4726
4.76M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
4.76M
}
auto scn::v3::detail::make_scan_buffer<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&)
Line
Count
Source
4680
4.57M
{
4681
4.57M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
4.57M
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
4.57M
                  "\n"
4685
4.57M
                  "Unsupported range type given as input to a scanning "
4686
4.57M
                  "function.\n"
4687
4.57M
                  "A range needs to have a character type (value type) "
4688
4.57M
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
4.57M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
4.57M
                  "to be included.\n"
4691
4.57M
                  "See the scnlib documentation for more details.");
4692
4.57M
    static_assert(
4693
4.57M
        !std::is_same_v<T, custom_char_traits>,
4694
4.57M
        "\n"
4695
4.57M
        "Unsupported range type given as input to a scanning "
4696
4.57M
        "function.\n"
4697
4.57M
        "String types (std::basic_string, and std::basic_string_view) "
4698
4.57M
        "need to use std::char_traits. Strings with custom Traits are "
4699
4.57M
        "not supported.");
4700
4.57M
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
4.57M
                  "\n"
4702
4.57M
                  "Unsupported range type given as input to a scanning "
4703
4.57M
                  "function.\n"
4704
4.57M
                  "file_marker_found cannot be used as an "
4705
4.57M
                  "source range type to scn::scan.\n"
4706
4.57M
                  "To read from stdin, use scn::input or scn::prompt, "
4707
4.57M
                  "and do not provide an explicit source range, "
4708
4.57M
                  "or use scn::scan with a FILE* directly.");
4709
4.57M
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
4.57M
                  "\n"
4711
4.57M
                  "Unsupported range type given as input to a scanning "
4712
4.57M
                  "function.\n"
4713
4.57M
                  "In order to be scannable, a range needs to satisfy "
4714
4.57M
                  "`forward_range`. `input_range` is not sufficient.");
4715
4.57M
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
4.57M
                  "\n"
4717
4.57M
                  "Unsupported range type given as input to a scanning "
4718
4.57M
                  "function.\n"
4719
4.57M
                  "A range needs to model forward_range and have a valid "
4720
4.57M
                  "character type (char or wchar_t) to be scannable.\n"
4721
4.57M
                  "Examples of scannable ranges are std::string, "
4722
4.57M
                  "std::string_view, "
4723
4.57M
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
4.57M
                  "See the scnlib documentation for more details.");
4725
4726
4.57M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
4.57M
}
auto scn::v3::detail::make_scan_buffer<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&)
Line
Count
Source
4680
37.3M
{
4681
37.3M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
37.3M
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
37.3M
                  "\n"
4685
37.3M
                  "Unsupported range type given as input to a scanning "
4686
37.3M
                  "function.\n"
4687
37.3M
                  "A range needs to have a character type (value type) "
4688
37.3M
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
37.3M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
37.3M
                  "to be included.\n"
4691
37.3M
                  "See the scnlib documentation for more details.");
4692
37.3M
    static_assert(
4693
37.3M
        !std::is_same_v<T, custom_char_traits>,
4694
37.3M
        "\n"
4695
37.3M
        "Unsupported range type given as input to a scanning "
4696
37.3M
        "function.\n"
4697
37.3M
        "String types (std::basic_string, and std::basic_string_view) "
4698
37.3M
        "need to use std::char_traits. Strings with custom Traits are "
4699
37.3M
        "not supported.");
4700
37.3M
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
37.3M
                  "\n"
4702
37.3M
                  "Unsupported range type given as input to a scanning "
4703
37.3M
                  "function.\n"
4704
37.3M
                  "file_marker_found cannot be used as an "
4705
37.3M
                  "source range type to scn::scan.\n"
4706
37.3M
                  "To read from stdin, use scn::input or scn::prompt, "
4707
37.3M
                  "and do not provide an explicit source range, "
4708
37.3M
                  "or use scn::scan with a FILE* directly.");
4709
37.3M
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
37.3M
                  "\n"
4711
37.3M
                  "Unsupported range type given as input to a scanning "
4712
37.3M
                  "function.\n"
4713
37.3M
                  "In order to be scannable, a range needs to satisfy "
4714
37.3M
                  "`forward_range`. `input_range` is not sufficient.");
4715
37.3M
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
37.3M
                  "\n"
4717
37.3M
                  "Unsupported range type given as input to a scanning "
4718
37.3M
                  "function.\n"
4719
37.3M
                  "A range needs to model forward_range and have a valid "
4720
37.3M
                  "character type (char or wchar_t) to be scannable.\n"
4721
37.3M
                  "Examples of scannable ranges are std::string, "
4722
37.3M
                  "std::string_view, "
4723
37.3M
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
37.3M
                  "See the scnlib documentation for more details.");
4725
4726
37.3M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
37.3M
}
auto scn::v3::detail::make_scan_buffer<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&)
Line
Count
Source
4680
19.0M
{
4681
19.0M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
4682
4683
19.0M
    static_assert(!std::is_same_v<T, invalid_char_type>,
4684
19.0M
                  "\n"
4685
19.0M
                  "Unsupported range type given as input to a scanning "
4686
19.0M
                  "function.\n"
4687
19.0M
                  "A range needs to have a character type (value type) "
4688
19.0M
                  "of either `char` or `wchar_t` to be scannable.\n"
4689
19.0M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
4690
19.0M
                  "to be included.\n"
4691
19.0M
                  "See the scnlib documentation for more details.");
4692
19.0M
    static_assert(
4693
19.0M
        !std::is_same_v<T, custom_char_traits>,
4694
19.0M
        "\n"
4695
19.0M
        "Unsupported range type given as input to a scanning "
4696
19.0M
        "function.\n"
4697
19.0M
        "String types (std::basic_string, and std::basic_string_view) "
4698
19.0M
        "need to use std::char_traits. Strings with custom Traits are "
4699
19.0M
        "not supported.");
4700
19.0M
    static_assert(!std::is_same_v<T, file_marker_found>,
4701
19.0M
                  "\n"
4702
19.0M
                  "Unsupported range type given as input to a scanning "
4703
19.0M
                  "function.\n"
4704
19.0M
                  "file_marker_found cannot be used as an "
4705
19.0M
                  "source range type to scn::scan.\n"
4706
19.0M
                  "To read from stdin, use scn::input or scn::prompt, "
4707
19.0M
                  "and do not provide an explicit source range, "
4708
19.0M
                  "or use scn::scan with a FILE* directly.");
4709
19.0M
    static_assert(!std::is_same_v<T, insufficient_range>,
4710
19.0M
                  "\n"
4711
19.0M
                  "Unsupported range type given as input to a scanning "
4712
19.0M
                  "function.\n"
4713
19.0M
                  "In order to be scannable, a range needs to satisfy "
4714
19.0M
                  "`forward_range`. `input_range` is not sufficient.");
4715
19.0M
    static_assert(!std::is_same_v<T, invalid_input_range>,
4716
19.0M
                  "\n"
4717
19.0M
                  "Unsupported range type given as input to a scanning "
4718
19.0M
                  "function.\n"
4719
19.0M
                  "A range needs to model forward_range and have a valid "
4720
19.0M
                  "character type (char or wchar_t) to be scannable.\n"
4721
19.0M
                  "Examples of scannable ranges are std::string, "
4722
19.0M
                  "std::string_view, "
4723
19.0M
                  "std::vector<char>, and scn::istreambuf_view.\n"
4724
19.0M
                  "See the scnlib documentation for more details.");
4725
4726
19.0M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
4727
19.0M
}
4728
4729
template <
4730
    typename Range,
4731
    std::enable_if_t<
4732
        !std::is_reference_v<Range> && !ranges::borrowed_range<Range> &&
4733
        !std::is_same_v<std::FILE*, std::remove_reference_t<Range>>>* = nullptr>
4734
auto make_scan_buffer(Range&&) = delete;
4735
}  // namespace detail
4736
4737
/////////////////////////////////////////////////////////////////
4738
// Argument type erasure
4739
/////////////////////////////////////////////////////////////////
4740
4741
namespace detail {
4742
enum class arg_type : unsigned char {
4743
    none_type,
4744
    schar_type,
4745
    short_type,
4746
    int_type,
4747
    long_type,
4748
    llong_type,
4749
    uchar_type,
4750
    ushort_type,
4751
    uint_type,
4752
    ulong_type,
4753
    ullong_type,
4754
    bool_type,
4755
    narrow_character_type,
4756
    wide_character_type,
4757
    code_point_type,
4758
    pointer_type,
4759
    float_type,
4760
    double_type,
4761
    ldouble_type,
4762
    narrow_string_view_type,
4763
    wide_string_view_type,
4764
    narrow_string_type,
4765
    wide_string_type,
4766
    narrow_regex_matches_type,
4767
    wide_regex_matches_type,
4768
    custom_type,
4769
    last_type = custom_type
4770
};
4771
4772
template <typename>
4773
inline constexpr bool is_type_disabled = SCN_DISABLE_TYPE_CUSTOM;
4774
4775
template <typename T, typename CharT>
4776
struct arg_type_constant
4777
    : std::integral_constant<arg_type, arg_type::custom_type> {
4778
    using type = T;
4779
};
4780
4781
#define SCN_TYPE_CONSTANT(Type, C, Disabled)              \
4782
    template <typename CharT>                             \
4783
    struct arg_type_constant<Type, CharT>                 \
4784
        : std::integral_constant<arg_type, arg_type::C> { \
4785
        using type = Type;                                \
4786
    };                                                    \
4787
    template <>                                           \
4788
    inline constexpr bool is_type_disabled<Type> = Disabled
4789
4790
SCN_TYPE_CONSTANT(signed char, schar_type, SCN_DISABLE_TYPE_SCHAR);
4791
SCN_TYPE_CONSTANT(short, short_type, SCN_DISABLE_TYPE_SHORT);
4792
SCN_TYPE_CONSTANT(int, int_type, SCN_DISABLE_TYPE_INT);
4793
SCN_TYPE_CONSTANT(long, long_type, SCN_DISABLE_TYPE_LONG);
4794
SCN_TYPE_CONSTANT(long long, llong_type, SCN_DISABLE_TYPE_LONG_LONG);
4795
SCN_TYPE_CONSTANT(unsigned char, uchar_type, SCN_DISABLE_TYPE_UCHAR);
4796
SCN_TYPE_CONSTANT(unsigned short, ushort_type, SCN_DISABLE_TYPE_USHORT);
4797
SCN_TYPE_CONSTANT(unsigned int, uint_type, SCN_DISABLE_TYPE_UINT);
4798
SCN_TYPE_CONSTANT(unsigned long, ulong_type, SCN_DISABLE_TYPE_ULONG);
4799
SCN_TYPE_CONSTANT(unsigned long long, ullong_type, SCN_DISABLE_TYPE_ULONG_LONG);
4800
SCN_TYPE_CONSTANT(bool, bool_type, SCN_DISABLE_TYPE_BOOL);
4801
SCN_TYPE_CONSTANT(char, narrow_character_type, SCN_DISABLE_TYPE_CHAR);
4802
SCN_TYPE_CONSTANT(wchar_t, wide_character_type, SCN_DISABLE_TYPE_CHAR);
4803
SCN_TYPE_CONSTANT(char32_t, code_point_type, SCN_DISABLE_TYPE_CHAR32);
4804
SCN_TYPE_CONSTANT(void*, pointer_type, SCN_DISABLE_TYPE_POINTER);
4805
SCN_TYPE_CONSTANT(float, float_type, SCN_DISABLE_TYPE_FLOAT);
4806
SCN_TYPE_CONSTANT(double, double_type, SCN_DISABLE_TYPE_DOUBLE);
4807
SCN_TYPE_CONSTANT(long double, ldouble_type, SCN_DISABLE_TYPE_LONG_DOUBLE);
4808
SCN_TYPE_CONSTANT(std::string_view,
4809
                  narrow_string_view_type,
4810
                  SCN_DISABLE_TYPE_STRING_VIEW);
4811
SCN_TYPE_CONSTANT(std::wstring_view,
4812
                  wide_string_view_type,
4813
                  SCN_DISABLE_TYPE_STRING_VIEW);
4814
SCN_TYPE_CONSTANT(std::string, narrow_string_type, SCN_DISABLE_TYPE_STRING);
4815
SCN_TYPE_CONSTANT(std::wstring, wide_string_type, SCN_DISABLE_TYPE_STRING);
4816
SCN_TYPE_CONSTANT(regex_matches, narrow_regex_matches_type, SCN_DISABLE_REGEX);
4817
SCN_TYPE_CONSTANT(wregex_matches, wide_regex_matches_type, SCN_DISABLE_REGEX);
4818
4819
#undef SCN_TYPE_CONSTANT
4820
4821
struct custom_value_type {
4822
    void* value;
4823
    scan_error (*scan)(void* arg, void* pctx, void* ctx);
4824
};
4825
4826
struct unscannable {};
4827
struct unscannable_char : unscannable {};
4828
struct unscannable_const : unscannable {};
4829
struct unscannable_disabled : unscannable {
4830
    unscannable_disabled() = default;
4831
4832
    template <typename T>
4833
    constexpr unscannable_disabled(T&&)
4834
    {
4835
    }
4836
};
4837
4838
struct needs_context_tag {};
4839
4840
template <typename Context>
4841
struct context_tag {
4842
    using type = Context;
4843
};
4844
4845
template <typename T, typename Context>
4846
struct custom_wrapper {
4847
    using context_type = Context;
4848
    T& val;
4849
};
4850
4851
class arg_value {
4852
public:
4853
    // trivial default initialization in constexpr
4854
#if defined(__cpp_constexpr) && __cpp_constexpr >= 201907L && \
4855
    SCN_STD > SCN_STD_20
4856
    constexpr
4857
#endif
4858
65.8M
    arg_value() = default;
4859
4860
    template <typename T>
4861
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
4862
66.1M
    {
4863
66.1M
    }
scn::v3::detail::arg_value::arg_value<char>(char&)
Line
Count
Source
4862
14.6k
    {
4863
14.6k
    }
scn::v3::detail::arg_value::arg_value<int>(int&)
Line
Count
Source
4862
1.05M
    {
4863
1.05M
    }
scn::v3::detail::arg_value::arg_value<unsigned int>(unsigned int&)
Line
Count
Source
4862
941k
    {
4863
941k
    }
scn::v3::detail::arg_value::arg_value<double>(double&)
Line
Count
Source
4862
1.68M
    {
4863
1.68M
    }
scn::v3::detail::arg_value::arg_value<bool>(bool&)
Line
Count
Source
4862
44.0k
    {
4863
44.0k
    }
scn::v3::detail::arg_value::arg_value<void*>(void*&)
Line
Count
Source
4862
44.0k
    {
4863
44.0k
    }
scn::v3::detail::arg_value::arg_value<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
4862
361k
    {
4863
361k
    }
scn::v3::detail::arg_value::arg_value<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
4862
36.6M
    {
4863
36.6M
    }
scn::v3::detail::arg_value::arg_value<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
4862
172k
    {
4863
172k
    }
scn::v3::detail::arg_value::arg_value<wchar_t>(wchar_t&)
Line
Count
Source
4862
29.3k
    {
4863
29.3k
    }
scn::v3::detail::arg_value::arg_value<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
4862
18.3M
    {
4863
18.3M
    }
scn::v3::detail::arg_value::arg_value<signed char>(signed char&)
Line
Count
Source
4862
842k
    {
4863
842k
    }
scn::v3::detail::arg_value::arg_value<unsigned char>(unsigned char&)
Line
Count
Source
4862
814k
    {
4863
814k
    }
scn::v3::detail::arg_value::arg_value<long long>(long long&)
Line
Count
Source
4862
1.02M
    {
4863
1.02M
    }
scn::v3::detail::arg_value::arg_value<unsigned long long>(unsigned long long&)
Line
Count
Source
4862
905k
    {
4863
905k
    }
scn::v3::detail::arg_value::arg_value<float>(float&)
Line
Count
Source
4862
1.52M
    {
4863
1.52M
    }
scn::v3::detail::arg_value::arg_value<long double>(long double&)
Line
Count
Source
4862
1.66M
    {
4863
1.66M
    }
4864
4865
    template <typename T, typename Context>
4866
    explicit constexpr arg_value(custom_wrapper<T, Context> val)
4867
        : custom_value{static_cast<void*>(&val.val),
4868
                       scan_custom_arg<T, Context>}
4869
    {
4870
    }
4871
4872
    arg_value(unscannable);
4873
    arg_value(unscannable_char);
4874
    arg_value(unscannable_const);
4875
    arg_value(unscannable_disabled);
4876
4877
    union {
4878
        void* ref_value{nullptr};
4879
        custom_value_type custom_value;
4880
    };
4881
4882
private:
4883
    template <typename T, typename Context>
4884
    static scan_error scan_custom_arg(void* arg, void* pctx, void* ctx)
4885
    {
4886
        static_assert(!is_type_disabled<T>,
4887
                      "Scanning of custom types is disabled by "
4888
                      "SCN_DISABLE_TYPE_CUSTOM");
4889
        SCN_EXPECT(arg && pctx && ctx);
4890
4891
        using context_type = Context;
4892
        using parse_context_type = typename context_type::parse_context_type;
4893
        using scanner_type = typename context_type::template scanner_type<T>;
4894
4895
        auto s = scanner_type{};
4896
4897
        auto& arg_ref = *static_cast<T*>(arg);
4898
        auto& pctx_ref = *static_cast<parse_context_type*>(pctx);
4899
        auto& ctx_ref = *static_cast<context_type*>(ctx);
4900
4901
        SCN_TRY_ERR(_, s.parse(pctx_ref));
4902
        SCN_UNUSED(_);
4903
        SCN_TRY_ERR(it, s.scan(arg_ref, ctx_ref));
4904
        ctx_ref.advance_to(SCN_MOVE(it));
4905
4906
        return {};
4907
    }
4908
};
4909
4910
template <typename CharT>
4911
struct arg_mapper {
4912
    using char_type = CharT;
4913
    using other_char_type =
4914
        std::conditional_t<std::is_same_v<char_type, char>, wchar_t, char>;
4915
4916
#define SCN_ARG_MAPPER(T)                                                    \
4917
    static auto map(T& val)                                                  \
4918
        -> std::conditional_t<is_type_disabled<T>, unscannable_disabled, T&> \
4919
66.1M
    {                                                                        \
4920
66.1M
        return val;                                                          \
4921
66.1M
    }
scn::v3::detail::arg_mapper<char>::map(int&)
Line
Count
Source
4919
862k
    {                                                                        \
4920
862k
        return val;                                                          \
4921
862k
    }
scn::v3::detail::arg_mapper<char>::map(unsigned int&)
Line
Count
Source
4919
747k
    {                                                                        \
4920
747k
        return val;                                                          \
4921
747k
    }
scn::v3::detail::arg_mapper<char>::map(double&)
Line
Count
Source
4919
1.49M
    {                                                                        \
4920
1.49M
        return val;                                                          \
4921
1.49M
    }
scn::v3::detail::arg_mapper<char>::map(bool&)
Line
Count
Source
4919
14.6k
    {                                                                        \
4920
14.6k
        return val;                                                          \
4921
14.6k
    }
scn::v3::detail::arg_mapper<char>::map(void*&)
Line
Count
Source
4919
14.6k
    {                                                                        \
4920
14.6k
        return val;                                                          \
4921
14.6k
    }
scn::v3::detail::arg_mapper<char>::map(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
4919
332k
    {                                                                        \
4920
332k
        return val;                                                          \
4921
332k
    }
scn::v3::detail::arg_mapper<char>::map(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
4919
14.6k
    {                                                                        \
4920
14.6k
        return val;                                                          \
4921
14.6k
    }
scn::v3::detail::arg_mapper<char>::map(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
4919
172k
    {                                                                        \
4920
172k
        return val;                                                          \
4921
172k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(wchar_t&)
Line
Count
Source
4919
29.3k
    {                                                                        \
4920
29.3k
        return val;                                                          \
4921
29.3k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(int&)
Line
Count
Source
4919
194k
    {                                                                        \
4920
194k
        return val;                                                          \
4921
194k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(unsigned int&)
Line
Count
Source
4919
193k
    {                                                                        \
4920
193k
        return val;                                                          \
4921
193k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(double&)
Line
Count
Source
4919
187k
    {                                                                        \
4920
187k
        return val;                                                          \
4921
187k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(bool&)
Line
Count
Source
4919
29.3k
    {                                                                        \
4920
29.3k
        return val;                                                          \
4921
29.3k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(void*&)
Line
Count
Source
4919
29.3k
    {                                                                        \
4920
29.3k
        return val;                                                          \
4921
29.3k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
4919
29.3k
    {                                                                        \
4920
29.3k
        return val;                                                          \
4921
29.3k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
4919
36.6M
    {                                                                        \
4920
36.6M
        return val;                                                          \
4921
36.6M
    }
scn::v3::detail::arg_mapper<wchar_t>::map(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
4919
18.3M
    {                                                                        \
4920
18.3M
        return val;                                                          \
4921
18.3M
    }
scn::v3::detail::arg_mapper<char>::map(signed char&)
Line
Count
Source
4919
677k
    {                                                                        \
4920
677k
        return val;                                                          \
4921
677k
    }
scn::v3::detail::arg_mapper<char>::map(unsigned char&)
Line
Count
Source
4919
650k
    {                                                                        \
4920
650k
        return val;                                                          \
4921
650k
    }
scn::v3::detail::arg_mapper<char>::map(long long&)
Line
Count
Source
4919
863k
    {                                                                        \
4920
863k
        return val;                                                          \
4921
863k
    }
scn::v3::detail::arg_mapper<char>::map(unsigned long long&)
Line
Count
Source
4919
741k
    {                                                                        \
4920
741k
        return val;                                                          \
4921
741k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(signed char&)
Line
Count
Source
4919
164k
    {                                                                        \
4920
164k
        return val;                                                          \
4921
164k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(unsigned char&)
Line
Count
Source
4919
164k
    {                                                                        \
4920
164k
        return val;                                                          \
4921
164k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(long long&)
Line
Count
Source
4919
165k
    {                                                                        \
4920
165k
        return val;                                                          \
4921
165k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(unsigned long long&)
Line
Count
Source
4919
164k
    {                                                                        \
4920
164k
        return val;                                                          \
4921
164k
    }
scn::v3::detail::arg_mapper<char>::map(float&)
Line
Count
Source
4919
1.36M
    {                                                                        \
4920
1.36M
        return val;                                                          \
4921
1.36M
    }
scn::v3::detail::arg_mapper<char>::map(long double&)
Line
Count
Source
4919
1.50M
    {                                                                        \
4920
1.50M
        return val;                                                          \
4921
1.50M
    }
scn::v3::detail::arg_mapper<wchar_t>::map(float&)
Line
Count
Source
4919
157k
    {                                                                        \
4920
157k
        return val;                                                          \
4921
157k
    }
scn::v3::detail::arg_mapper<wchar_t>::map(long double&)
Line
Count
Source
4919
158k
    {                                                                        \
4920
158k
        return val;                                                          \
4921
158k
    }
4922
4923
    SCN_ARG_MAPPER(signed char)
4924
    SCN_ARG_MAPPER(short)
4925
    SCN_ARG_MAPPER(int)
4926
    SCN_ARG_MAPPER(long)
4927
    SCN_ARG_MAPPER(long long)
4928
    SCN_ARG_MAPPER(unsigned char)
4929
    SCN_ARG_MAPPER(unsigned short)
4930
    SCN_ARG_MAPPER(unsigned)
4931
    SCN_ARG_MAPPER(unsigned long)
4932
    SCN_ARG_MAPPER(unsigned long long)
4933
    SCN_ARG_MAPPER(wchar_t)
4934
    SCN_ARG_MAPPER(char32_t)
4935
    SCN_ARG_MAPPER(bool)
4936
    SCN_ARG_MAPPER(void*)
4937
    SCN_ARG_MAPPER(float)
4938
    SCN_ARG_MAPPER(double)
4939
    SCN_ARG_MAPPER(long double)
4940
4941
    SCN_ARG_MAPPER(std::basic_string_view<char_type>)
4942
    SCN_ARG_MAPPER(std::string)
4943
    SCN_ARG_MAPPER(std::wstring)
4944
4945
#undef SCN_ARG_MAPPER
4946
4947
    static decltype(auto) map(char& val)
4948
14.6k
    {
4949
14.6k
        if constexpr (std::is_same_v<char_type, char> &&
4950
14.6k
                      !is_type_disabled<char_type>) {
4951
14.6k
            return val;
4952
14.6k
        }
4953
14.6k
        else if constexpr (is_type_disabled<char_type>) {
4954
14.6k
            return unscannable_disabled{val};
4955
14.6k
        }
4956
14.6k
        else {
4957
14.6k
            SCN_UNUSED(val);
4958
14.6k
            return unscannable_char{};
4959
14.6k
        }
4960
14.6k
    }
4961
4962
    static decltype(auto) map(basic_regex_matches<char_type>& val)
4963
    {
4964
        if constexpr (is_type_disabled<char_type>) {
4965
            return unscannable_disabled{val};
4966
        }
4967
        else {
4968
            return val;
4969
        }
4970
    }
4971
4972
    static unscannable_char map(std::basic_string_view<other_char_type>&)
4973
    {
4974
        return {};
4975
    }
4976
    static unscannable_char map(basic_regex_matches<other_char_type>&)
4977
    {
4978
        return {};
4979
    }
4980
4981
    template <typename T>
4982
    static std::enable_if_t<std::is_constructible_v<scanner<T, char_type>>,
4983
                            needs_context_tag>
4984
    map(T&)
4985
    {
4986
        return {};
4987
    }
4988
4989
    template <typename T, typename Context>
4990
    static std::enable_if_t<std::is_constructible_v<scanner<T, char_type>>,
4991
                            custom_wrapper<T, Context>>
4992
    map(T& val, context_tag<Context>)
4993
    {
4994
        return {val};
4995
    }
4996
4997
    static unscannable map(...)
4998
    {
4999
        return {};
5000
    }
5001
};
5002
5003
template <typename T, typename CharT>
5004
using mapped_type_constant = arg_type_constant<
5005
    std::remove_reference_t<decltype(arg_mapper<CharT>().map(SCN_DECLVAL(T&)))>,
5006
    CharT>;
5007
5008
template <typename T, typename CharT>
5009
using is_scannable = std::integral_constant<
5010
    bool,
5011
    !std::is_base_of_v<
5012
        unscannable,
5013
        remove_cvref_t<decltype(arg_mapper<CharT>().map(SCN_DECLVAL(T&)))>>>;
5014
5015
constexpr std::size_t packed_arg_bits = 5;
5016
static_assert((1 << packed_arg_bits) >= static_cast<int>(arg_type::last_type));
5017
constexpr std::size_t bits_in_sz = sizeof(std::size_t) * 8;
5018
constexpr std::size_t max_packed_args = (bits_in_sz - 2) / packed_arg_bits - 1;
5019
constexpr std::size_t is_unpacked_bit = std::size_t{1} << (bits_in_sz - 1);
5020
constexpr std::size_t has_custom_types_bit = std::size_t{1} << (bits_in_sz - 2);
5021
5022
template <typename>
5023
constexpr size_t encode_types_impl()
5024
0
{
5025
0
    return 0;
5026
0
}
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t>()
5027
template <typename CharT, typename T, typename... Others>
5028
constexpr size_t encode_types_impl()
5029
0
{
5030
0
    return static_cast<unsigned>(mapped_type_constant<T, CharT>::value) |
5031
0
           (encode_types_impl<CharT, Others...>() << packed_arg_bits);
5032
0
}
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, unsigned int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, double>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, bool>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, void*>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, wchar_t>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, unsigned int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, double>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, bool>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, void*>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, signed char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, unsigned char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, unsigned long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, signed char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, unsigned char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, unsigned long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, float>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<char, long double>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, float>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types_impl<wchar_t, long double>()
5033
5034
template <typename CharT, typename... Ts>
5035
constexpr size_t encode_types()
5036
0
{
5037
0
    if constexpr (sizeof...(Ts) < (1 << packed_arg_bits)) {
5038
0
        return sizeof...(Ts) |
5039
0
               (encode_types_impl<CharT, Ts...>() << packed_arg_bits);
5040
0
    }
5041
0
    else {
5042
0
        SCN_EXPECT(false);
5043
0
        SCN_UNREACHABLE;
5044
0
    }
5045
0
}
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, unsigned int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, double>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, bool>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, void*>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, wchar_t>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, unsigned int>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, double>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, bool>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, void*>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, signed char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, unsigned char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, unsigned long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, signed char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, unsigned char>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, unsigned long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, float>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<char, long double>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, float>()
Unexecuted instantiation: unsigned long scn::v3::detail::encode_types<wchar_t, long double>()
5046
5047
template <typename Arg>
5048
constexpr auto make_value_impl(Arg&& arg)
5049
66.1M
{
5050
66.1M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
66.1M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
66.1M
    constexpr bool scannable_char =
5054
66.1M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
66.1M
    static_assert(scannable_char,
5056
66.1M
                  "Cannot scan an argument of an unsupported character "
5057
66.1M
                  "type (i.e. char from a wchar_t source)");
5058
5059
66.1M
    constexpr bool scannable_const =
5060
66.1M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
66.1M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
66.1M
    constexpr bool scannable_disabled =
5064
66.1M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
66.1M
    static_assert(scannable_disabled,
5066
66.1M
                  "Cannot scan an argument that has been disabled by "
5067
66.1M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
66.1M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
66.1M
    static_assert(
5071
66.1M
        scannable,
5072
66.1M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
66.1M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
66.1M
    return arg_value{arg};
5076
66.1M
}
auto scn::v3::detail::make_value_impl<char&>(char&)
Line
Count
Source
5049
14.6k
{
5050
14.6k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
14.6k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
14.6k
    constexpr bool scannable_char =
5054
14.6k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
14.6k
    static_assert(scannable_char,
5056
14.6k
                  "Cannot scan an argument of an unsupported character "
5057
14.6k
                  "type (i.e. char from a wchar_t source)");
5058
5059
14.6k
    constexpr bool scannable_const =
5060
14.6k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
14.6k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
14.6k
    constexpr bool scannable_disabled =
5064
14.6k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
14.6k
    static_assert(scannable_disabled,
5066
14.6k
                  "Cannot scan an argument that has been disabled by "
5067
14.6k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
14.6k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
14.6k
    static_assert(
5071
14.6k
        scannable,
5072
14.6k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
14.6k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
14.6k
    return arg_value{arg};
5076
14.6k
}
auto scn::v3::detail::make_value_impl<int&>(int&)
Line
Count
Source
5049
1.05M
{
5050
1.05M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
1.05M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
1.05M
    constexpr bool scannable_char =
5054
1.05M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
1.05M
    static_assert(scannable_char,
5056
1.05M
                  "Cannot scan an argument of an unsupported character "
5057
1.05M
                  "type (i.e. char from a wchar_t source)");
5058
5059
1.05M
    constexpr bool scannable_const =
5060
1.05M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
1.05M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
1.05M
    constexpr bool scannable_disabled =
5064
1.05M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
1.05M
    static_assert(scannable_disabled,
5066
1.05M
                  "Cannot scan an argument that has been disabled by "
5067
1.05M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
1.05M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
1.05M
    static_assert(
5071
1.05M
        scannable,
5072
1.05M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
1.05M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
1.05M
    return arg_value{arg};
5076
1.05M
}
auto scn::v3::detail::make_value_impl<unsigned int&>(unsigned int&)
Line
Count
Source
5049
941k
{
5050
941k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
941k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
941k
    constexpr bool scannable_char =
5054
941k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
941k
    static_assert(scannable_char,
5056
941k
                  "Cannot scan an argument of an unsupported character "
5057
941k
                  "type (i.e. char from a wchar_t source)");
5058
5059
941k
    constexpr bool scannable_const =
5060
941k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
941k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
941k
    constexpr bool scannable_disabled =
5064
941k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
941k
    static_assert(scannable_disabled,
5066
941k
                  "Cannot scan an argument that has been disabled by "
5067
941k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
941k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
941k
    static_assert(
5071
941k
        scannable,
5072
941k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
941k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
941k
    return arg_value{arg};
5076
941k
}
auto scn::v3::detail::make_value_impl<double&>(double&)
Line
Count
Source
5049
1.68M
{
5050
1.68M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
1.68M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
1.68M
    constexpr bool scannable_char =
5054
1.68M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
1.68M
    static_assert(scannable_char,
5056
1.68M
                  "Cannot scan an argument of an unsupported character "
5057
1.68M
                  "type (i.e. char from a wchar_t source)");
5058
5059
1.68M
    constexpr bool scannable_const =
5060
1.68M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
1.68M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
1.68M
    constexpr bool scannable_disabled =
5064
1.68M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
1.68M
    static_assert(scannable_disabled,
5066
1.68M
                  "Cannot scan an argument that has been disabled by "
5067
1.68M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
1.68M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
1.68M
    static_assert(
5071
1.68M
        scannable,
5072
1.68M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
1.68M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
1.68M
    return arg_value{arg};
5076
1.68M
}
auto scn::v3::detail::make_value_impl<bool&>(bool&)
Line
Count
Source
5049
44.0k
{
5050
44.0k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
44.0k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
44.0k
    constexpr bool scannable_char =
5054
44.0k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
44.0k
    static_assert(scannable_char,
5056
44.0k
                  "Cannot scan an argument of an unsupported character "
5057
44.0k
                  "type (i.e. char from a wchar_t source)");
5058
5059
44.0k
    constexpr bool scannable_const =
5060
44.0k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
44.0k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
44.0k
    constexpr bool scannable_disabled =
5064
44.0k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
44.0k
    static_assert(scannable_disabled,
5066
44.0k
                  "Cannot scan an argument that has been disabled by "
5067
44.0k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
44.0k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
44.0k
    static_assert(
5071
44.0k
        scannable,
5072
44.0k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
44.0k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
44.0k
    return arg_value{arg};
5076
44.0k
}
auto scn::v3::detail::make_value_impl<void*&>(void*&)
Line
Count
Source
5049
44.0k
{
5050
44.0k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
44.0k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
44.0k
    constexpr bool scannable_char =
5054
44.0k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
44.0k
    static_assert(scannable_char,
5056
44.0k
                  "Cannot scan an argument of an unsupported character "
5057
44.0k
                  "type (i.e. char from a wchar_t source)");
5058
5059
44.0k
    constexpr bool scannable_const =
5060
44.0k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
44.0k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
44.0k
    constexpr bool scannable_disabled =
5064
44.0k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
44.0k
    static_assert(scannable_disabled,
5066
44.0k
                  "Cannot scan an argument that has been disabled by "
5067
44.0k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
44.0k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
44.0k
    static_assert(
5071
44.0k
        scannable,
5072
44.0k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
44.0k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
44.0k
    return arg_value{arg};
5076
44.0k
}
auto scn::v3::detail::make_value_impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5049
361k
{
5050
361k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
361k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
361k
    constexpr bool scannable_char =
5054
361k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
361k
    static_assert(scannable_char,
5056
361k
                  "Cannot scan an argument of an unsupported character "
5057
361k
                  "type (i.e. char from a wchar_t source)");
5058
5059
361k
    constexpr bool scannable_const =
5060
361k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
361k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
361k
    constexpr bool scannable_disabled =
5064
361k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
361k
    static_assert(scannable_disabled,
5066
361k
                  "Cannot scan an argument that has been disabled by "
5067
361k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
361k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
361k
    static_assert(
5071
361k
        scannable,
5072
361k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
361k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
361k
    return arg_value{arg};
5076
361k
}
auto scn::v3::detail::make_value_impl<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&>(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5049
36.6M
{
5050
36.6M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
36.6M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
36.6M
    constexpr bool scannable_char =
5054
36.6M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
36.6M
    static_assert(scannable_char,
5056
36.6M
                  "Cannot scan an argument of an unsupported character "
5057
36.6M
                  "type (i.e. char from a wchar_t source)");
5058
5059
36.6M
    constexpr bool scannable_const =
5060
36.6M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
36.6M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
36.6M
    constexpr bool scannable_disabled =
5064
36.6M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
36.6M
    static_assert(scannable_disabled,
5066
36.6M
                  "Cannot scan an argument that has been disabled by "
5067
36.6M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
36.6M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
36.6M
    static_assert(
5071
36.6M
        scannable,
5072
36.6M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
36.6M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
36.6M
    return arg_value{arg};
5076
36.6M
}
auto scn::v3::detail::make_value_impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5049
172k
{
5050
172k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
172k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
172k
    constexpr bool scannable_char =
5054
172k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
172k
    static_assert(scannable_char,
5056
172k
                  "Cannot scan an argument of an unsupported character "
5057
172k
                  "type (i.e. char from a wchar_t source)");
5058
5059
172k
    constexpr bool scannable_const =
5060
172k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
172k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
172k
    constexpr bool scannable_disabled =
5064
172k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
172k
    static_assert(scannable_disabled,
5066
172k
                  "Cannot scan an argument that has been disabled by "
5067
172k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
172k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
172k
    static_assert(
5071
172k
        scannable,
5072
172k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
172k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
172k
    return arg_value{arg};
5076
172k
}
auto scn::v3::detail::make_value_impl<wchar_t&>(wchar_t&)
Line
Count
Source
5049
29.3k
{
5050
29.3k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
29.3k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
29.3k
    constexpr bool scannable_char =
5054
29.3k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
29.3k
    static_assert(scannable_char,
5056
29.3k
                  "Cannot scan an argument of an unsupported character "
5057
29.3k
                  "type (i.e. char from a wchar_t source)");
5058
5059
29.3k
    constexpr bool scannable_const =
5060
29.3k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
29.3k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
29.3k
    constexpr bool scannable_disabled =
5064
29.3k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
29.3k
    static_assert(scannable_disabled,
5066
29.3k
                  "Cannot scan an argument that has been disabled by "
5067
29.3k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
29.3k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
29.3k
    static_assert(
5071
29.3k
        scannable,
5072
29.3k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
29.3k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
29.3k
    return arg_value{arg};
5076
29.3k
}
auto scn::v3::detail::make_value_impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5049
18.3M
{
5050
18.3M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
18.3M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
18.3M
    constexpr bool scannable_char =
5054
18.3M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
18.3M
    static_assert(scannable_char,
5056
18.3M
                  "Cannot scan an argument of an unsupported character "
5057
18.3M
                  "type (i.e. char from a wchar_t source)");
5058
5059
18.3M
    constexpr bool scannable_const =
5060
18.3M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
18.3M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
18.3M
    constexpr bool scannable_disabled =
5064
18.3M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
18.3M
    static_assert(scannable_disabled,
5066
18.3M
                  "Cannot scan an argument that has been disabled by "
5067
18.3M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
18.3M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
18.3M
    static_assert(
5071
18.3M
        scannable,
5072
18.3M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
18.3M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
18.3M
    return arg_value{arg};
5076
18.3M
}
auto scn::v3::detail::make_value_impl<signed char&>(signed char&)
Line
Count
Source
5049
842k
{
5050
842k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
842k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
842k
    constexpr bool scannable_char =
5054
842k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
842k
    static_assert(scannable_char,
5056
842k
                  "Cannot scan an argument of an unsupported character "
5057
842k
                  "type (i.e. char from a wchar_t source)");
5058
5059
842k
    constexpr bool scannable_const =
5060
842k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
842k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
842k
    constexpr bool scannable_disabled =
5064
842k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
842k
    static_assert(scannable_disabled,
5066
842k
                  "Cannot scan an argument that has been disabled by "
5067
842k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
842k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
842k
    static_assert(
5071
842k
        scannable,
5072
842k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
842k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
842k
    return arg_value{arg};
5076
842k
}
auto scn::v3::detail::make_value_impl<unsigned char&>(unsigned char&)
Line
Count
Source
5049
814k
{
5050
814k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
814k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
814k
    constexpr bool scannable_char =
5054
814k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
814k
    static_assert(scannable_char,
5056
814k
                  "Cannot scan an argument of an unsupported character "
5057
814k
                  "type (i.e. char from a wchar_t source)");
5058
5059
814k
    constexpr bool scannable_const =
5060
814k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
814k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
814k
    constexpr bool scannable_disabled =
5064
814k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
814k
    static_assert(scannable_disabled,
5066
814k
                  "Cannot scan an argument that has been disabled by "
5067
814k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
814k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
814k
    static_assert(
5071
814k
        scannable,
5072
814k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
814k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
814k
    return arg_value{arg};
5076
814k
}
auto scn::v3::detail::make_value_impl<long long&>(long long&)
Line
Count
Source
5049
1.02M
{
5050
1.02M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
1.02M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
1.02M
    constexpr bool scannable_char =
5054
1.02M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
1.02M
    static_assert(scannable_char,
5056
1.02M
                  "Cannot scan an argument of an unsupported character "
5057
1.02M
                  "type (i.e. char from a wchar_t source)");
5058
5059
1.02M
    constexpr bool scannable_const =
5060
1.02M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
1.02M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
1.02M
    constexpr bool scannable_disabled =
5064
1.02M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
1.02M
    static_assert(scannable_disabled,
5066
1.02M
                  "Cannot scan an argument that has been disabled by "
5067
1.02M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
1.02M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
1.02M
    static_assert(
5071
1.02M
        scannable,
5072
1.02M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
1.02M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
1.02M
    return arg_value{arg};
5076
1.02M
}
auto scn::v3::detail::make_value_impl<unsigned long long&>(unsigned long long&)
Line
Count
Source
5049
905k
{
5050
905k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
905k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
905k
    constexpr bool scannable_char =
5054
905k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
905k
    static_assert(scannable_char,
5056
905k
                  "Cannot scan an argument of an unsupported character "
5057
905k
                  "type (i.e. char from a wchar_t source)");
5058
5059
905k
    constexpr bool scannable_const =
5060
905k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
905k
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
905k
    constexpr bool scannable_disabled =
5064
905k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
905k
    static_assert(scannable_disabled,
5066
905k
                  "Cannot scan an argument that has been disabled by "
5067
905k
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
905k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
905k
    static_assert(
5071
905k
        scannable,
5072
905k
        "Cannot scan an argument. To make a type T scannable, provide "
5073
905k
        "a scn::scanner<T, CharT> specialization.");
5074
5075
905k
    return arg_value{arg};
5076
905k
}
auto scn::v3::detail::make_value_impl<float&>(float&)
Line
Count
Source
5049
1.52M
{
5050
1.52M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
1.52M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
1.52M
    constexpr bool scannable_char =
5054
1.52M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
1.52M
    static_assert(scannable_char,
5056
1.52M
                  "Cannot scan an argument of an unsupported character "
5057
1.52M
                  "type (i.e. char from a wchar_t source)");
5058
5059
1.52M
    constexpr bool scannable_const =
5060
1.52M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
1.52M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
1.52M
    constexpr bool scannable_disabled =
5064
1.52M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
1.52M
    static_assert(scannable_disabled,
5066
1.52M
                  "Cannot scan an argument that has been disabled by "
5067
1.52M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
1.52M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
1.52M
    static_assert(
5071
1.52M
        scannable,
5072
1.52M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
1.52M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
1.52M
    return arg_value{arg};
5076
1.52M
}
auto scn::v3::detail::make_value_impl<long double&>(long double&)
Line
Count
Source
5049
1.66M
{
5050
1.66M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5051
1.66M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5052
5053
1.66M
    constexpr bool scannable_char =
5054
1.66M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5055
1.66M
    static_assert(scannable_char,
5056
1.66M
                  "Cannot scan an argument of an unsupported character "
5057
1.66M
                  "type (i.e. char from a wchar_t source)");
5058
5059
1.66M
    constexpr bool scannable_const =
5060
1.66M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5061
1.66M
    static_assert(scannable_const, "Cannot scan a const argument");
5062
5063
1.66M
    constexpr bool scannable_disabled =
5064
1.66M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5065
1.66M
    static_assert(scannable_disabled,
5066
1.66M
                  "Cannot scan an argument that has been disabled by "
5067
1.66M
                  "flag (SCN_DISABLE_TYPE_*)");
5068
5069
1.66M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5070
1.66M
    static_assert(
5071
1.66M
        scannable,
5072
1.66M
        "Cannot scan an argument. To make a type T scannable, provide "
5073
1.66M
        "a scn::scanner<T, CharT> specialization.");
5074
5075
1.66M
    return arg_value{arg};
5076
1.66M
}
5077
5078
template <typename Context, typename T>
5079
constexpr auto make_value(T& value)
5080
66.1M
{
5081
66.1M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
66.1M
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
66.1M
                                  needs_context_tag>) {
5085
66.1M
        return make_value_impl(SCN_FWD(arg));
5086
66.1M
    }
5087
66.1M
    else {
5088
66.1M
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
66.1M
            value, context_tag<Context>{}));
5090
66.1M
    }
5091
66.1M
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, char>(char&)
Line
Count
Source
5080
14.6k
{
5081
14.6k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
14.6k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
14.6k
                                  needs_context_tag>) {
5085
14.6k
        return make_value_impl(SCN_FWD(arg));
5086
14.6k
    }
5087
14.6k
    else {
5088
14.6k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
14.6k
            value, context_tag<Context>{}));
5090
14.6k
    }
5091
14.6k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, int>(int&)
Line
Count
Source
5080
862k
{
5081
862k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
862k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
862k
                                  needs_context_tag>) {
5085
862k
        return make_value_impl(SCN_FWD(arg));
5086
862k
    }
5087
862k
    else {
5088
862k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
862k
            value, context_tag<Context>{}));
5090
862k
    }
5091
862k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, unsigned int>(unsigned int&)
Line
Count
Source
5080
747k
{
5081
747k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
747k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
747k
                                  needs_context_tag>) {
5085
747k
        return make_value_impl(SCN_FWD(arg));
5086
747k
    }
5087
747k
    else {
5088
747k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
747k
            value, context_tag<Context>{}));
5090
747k
    }
5091
747k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, double>(double&)
Line
Count
Source
5080
1.49M
{
5081
1.49M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
1.49M
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
1.49M
                                  needs_context_tag>) {
5085
1.49M
        return make_value_impl(SCN_FWD(arg));
5086
1.49M
    }
5087
1.49M
    else {
5088
1.49M
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
1.49M
            value, context_tag<Context>{}));
5090
1.49M
    }
5091
1.49M
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, bool>(bool&)
Line
Count
Source
5080
14.6k
{
5081
14.6k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
14.6k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
14.6k
                                  needs_context_tag>) {
5085
14.6k
        return make_value_impl(SCN_FWD(arg));
5086
14.6k
    }
5087
14.6k
    else {
5088
14.6k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
14.6k
            value, context_tag<Context>{}));
5090
14.6k
    }
5091
14.6k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, void*>(void*&)
Line
Count
Source
5080
14.6k
{
5081
14.6k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
14.6k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
14.6k
                                  needs_context_tag>) {
5085
14.6k
        return make_value_impl(SCN_FWD(arg));
5086
14.6k
    }
5087
14.6k
    else {
5088
14.6k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
14.6k
            value, context_tag<Context>{}));
5090
14.6k
    }
5091
14.6k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5080
332k
{
5081
332k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
332k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
332k
                                  needs_context_tag>) {
5085
332k
        return make_value_impl(SCN_FWD(arg));
5086
332k
    }
5087
332k
    else {
5088
332k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
332k
            value, context_tag<Context>{}));
5090
332k
    }
5091
332k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5080
14.6k
{
5081
14.6k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
14.6k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
14.6k
                                  needs_context_tag>) {
5085
14.6k
        return make_value_impl(SCN_FWD(arg));
5086
14.6k
    }
5087
14.6k
    else {
5088
14.6k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
14.6k
            value, context_tag<Context>{}));
5090
14.6k
    }
5091
14.6k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5080
172k
{
5081
172k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
172k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
172k
                                  needs_context_tag>) {
5085
172k
        return make_value_impl(SCN_FWD(arg));
5086
172k
    }
5087
172k
    else {
5088
172k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
172k
            value, context_tag<Context>{}));
5090
172k
    }
5091
172k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, wchar_t>(wchar_t&)
Line
Count
Source
5080
29.3k
{
5081
29.3k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
29.3k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
29.3k
                                  needs_context_tag>) {
5085
29.3k
        return make_value_impl(SCN_FWD(arg));
5086
29.3k
    }
5087
29.3k
    else {
5088
29.3k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
29.3k
            value, context_tag<Context>{}));
5090
29.3k
    }
5091
29.3k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, int>(int&)
Line
Count
Source
5080
194k
{
5081
194k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
194k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
194k
                                  needs_context_tag>) {
5085
194k
        return make_value_impl(SCN_FWD(arg));
5086
194k
    }
5087
194k
    else {
5088
194k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
194k
            value, context_tag<Context>{}));
5090
194k
    }
5091
194k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, unsigned int>(unsigned int&)
Line
Count
Source
5080
193k
{
5081
193k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
193k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
193k
                                  needs_context_tag>) {
5085
193k
        return make_value_impl(SCN_FWD(arg));
5086
193k
    }
5087
193k
    else {
5088
193k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
193k
            value, context_tag<Context>{}));
5090
193k
    }
5091
193k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, double>(double&)
Line
Count
Source
5080
187k
{
5081
187k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
187k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
187k
                                  needs_context_tag>) {
5085
187k
        return make_value_impl(SCN_FWD(arg));
5086
187k
    }
5087
187k
    else {
5088
187k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
187k
            value, context_tag<Context>{}));
5090
187k
    }
5091
187k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, bool>(bool&)
Line
Count
Source
5080
29.3k
{
5081
29.3k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
29.3k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
29.3k
                                  needs_context_tag>) {
5085
29.3k
        return make_value_impl(SCN_FWD(arg));
5086
29.3k
    }
5087
29.3k
    else {
5088
29.3k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
29.3k
            value, context_tag<Context>{}));
5090
29.3k
    }
5091
29.3k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, void*>(void*&)
Line
Count
Source
5080
29.3k
{
5081
29.3k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
29.3k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
29.3k
                                  needs_context_tag>) {
5085
29.3k
        return make_value_impl(SCN_FWD(arg));
5086
29.3k
    }
5087
29.3k
    else {
5088
29.3k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
29.3k
            value, context_tag<Context>{}));
5090
29.3k
    }
5091
29.3k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5080
29.3k
{
5081
29.3k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
29.3k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
29.3k
                                  needs_context_tag>) {
5085
29.3k
        return make_value_impl(SCN_FWD(arg));
5086
29.3k
    }
5087
29.3k
    else {
5088
29.3k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
29.3k
            value, context_tag<Context>{}));
5090
29.3k
    }
5091
29.3k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5080
36.6M
{
5081
36.6M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
36.6M
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
36.6M
                                  needs_context_tag>) {
5085
36.6M
        return make_value_impl(SCN_FWD(arg));
5086
36.6M
    }
5087
36.6M
    else {
5088
36.6M
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
36.6M
            value, context_tag<Context>{}));
5090
36.6M
    }
5091
36.6M
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5080
18.3M
{
5081
18.3M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
18.3M
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
18.3M
                                  needs_context_tag>) {
5085
18.3M
        return make_value_impl(SCN_FWD(arg));
5086
18.3M
    }
5087
18.3M
    else {
5088
18.3M
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
18.3M
            value, context_tag<Context>{}));
5090
18.3M
    }
5091
18.3M
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, signed char>(signed char&)
Line
Count
Source
5080
677k
{
5081
677k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
677k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
677k
                                  needs_context_tag>) {
5085
677k
        return make_value_impl(SCN_FWD(arg));
5086
677k
    }
5087
677k
    else {
5088
677k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
677k
            value, context_tag<Context>{}));
5090
677k
    }
5091
677k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, unsigned char>(unsigned char&)
Line
Count
Source
5080
650k
{
5081
650k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
650k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
650k
                                  needs_context_tag>) {
5085
650k
        return make_value_impl(SCN_FWD(arg));
5086
650k
    }
5087
650k
    else {
5088
650k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
650k
            value, context_tag<Context>{}));
5090
650k
    }
5091
650k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, long long>(long long&)
Line
Count
Source
5080
863k
{
5081
863k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
863k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
863k
                                  needs_context_tag>) {
5085
863k
        return make_value_impl(SCN_FWD(arg));
5086
863k
    }
5087
863k
    else {
5088
863k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
863k
            value, context_tag<Context>{}));
5090
863k
    }
5091
863k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, unsigned long long>(unsigned long long&)
Line
Count
Source
5080
741k
{
5081
741k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
741k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
741k
                                  needs_context_tag>) {
5085
741k
        return make_value_impl(SCN_FWD(arg));
5086
741k
    }
5087
741k
    else {
5088
741k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
741k
            value, context_tag<Context>{}));
5090
741k
    }
5091
741k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, signed char>(signed char&)
Line
Count
Source
5080
164k
{
5081
164k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
164k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
164k
                                  needs_context_tag>) {
5085
164k
        return make_value_impl(SCN_FWD(arg));
5086
164k
    }
5087
164k
    else {
5088
164k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
164k
            value, context_tag<Context>{}));
5090
164k
    }
5091
164k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, unsigned char>(unsigned char&)
Line
Count
Source
5080
164k
{
5081
164k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
164k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
164k
                                  needs_context_tag>) {
5085
164k
        return make_value_impl(SCN_FWD(arg));
5086
164k
    }
5087
164k
    else {
5088
164k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
164k
            value, context_tag<Context>{}));
5090
164k
    }
5091
164k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, long long>(long long&)
Line
Count
Source
5080
165k
{
5081
165k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
165k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
165k
                                  needs_context_tag>) {
5085
165k
        return make_value_impl(SCN_FWD(arg));
5086
165k
    }
5087
165k
    else {
5088
165k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
165k
            value, context_tag<Context>{}));
5090
165k
    }
5091
165k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, unsigned long long>(unsigned long long&)
Line
Count
Source
5080
164k
{
5081
164k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
164k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
164k
                                  needs_context_tag>) {
5085
164k
        return make_value_impl(SCN_FWD(arg));
5086
164k
    }
5087
164k
    else {
5088
164k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
164k
            value, context_tag<Context>{}));
5090
164k
    }
5091
164k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, float>(float&)
Line
Count
Source
5080
1.36M
{
5081
1.36M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
1.36M
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
1.36M
                                  needs_context_tag>) {
5085
1.36M
        return make_value_impl(SCN_FWD(arg));
5086
1.36M
    }
5087
1.36M
    else {
5088
1.36M
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
1.36M
            value, context_tag<Context>{}));
5090
1.36M
    }
5091
1.36M
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<char>, long double>(long double&)
Line
Count
Source
5080
1.50M
{
5081
1.50M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
1.50M
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
1.50M
                                  needs_context_tag>) {
5085
1.50M
        return make_value_impl(SCN_FWD(arg));
5086
1.50M
    }
5087
1.50M
    else {
5088
1.50M
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
1.50M
            value, context_tag<Context>{}));
5090
1.50M
    }
5091
1.50M
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, float>(float&)
Line
Count
Source
5080
157k
{
5081
157k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
157k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
157k
                                  needs_context_tag>) {
5085
157k
        return make_value_impl(SCN_FWD(arg));
5086
157k
    }
5087
157k
    else {
5088
157k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
157k
            value, context_tag<Context>{}));
5090
157k
    }
5091
157k
}
auto scn::v3::detail::make_value<scn::v3::basic_scan_context<wchar_t>, long double>(long double&)
Line
Count
Source
5080
158k
{
5081
158k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5082
5083
158k
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5084
158k
                                  needs_context_tag>) {
5085
158k
        return make_value_impl(SCN_FWD(arg));
5086
158k
    }
5087
158k
    else {
5088
158k
        return make_value_impl(arg_mapper<typename Context::char_type>().map(
5089
158k
            value, context_tag<Context>{}));
5090
158k
    }
5091
158k
}
5092
5093
template <typename... Args>
5094
constexpr void check_scan_arg_types()
5095
66.1M
{
5096
66.1M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
66.1M
                  "Scan argument types must be default constructible");
5098
66.1M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
66.1M
                  "Scan argument types must be Destructible");
5100
66.1M
    static_assert(
5101
66.1M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
66.1M
        "Scan argument types must not be references");
5103
66.1M
}
void scn::v3::detail::check_scan_arg_types<char>()
Line
Count
Source
5095
14.6k
{
5096
14.6k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
14.6k
                  "Scan argument types must be default constructible");
5098
14.6k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
14.6k
                  "Scan argument types must be Destructible");
5100
14.6k
    static_assert(
5101
14.6k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
14.6k
        "Scan argument types must not be references");
5103
14.6k
}
void scn::v3::detail::check_scan_arg_types<int>()
Line
Count
Source
5095
1.05M
{
5096
1.05M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
1.05M
                  "Scan argument types must be default constructible");
5098
1.05M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
1.05M
                  "Scan argument types must be Destructible");
5100
1.05M
    static_assert(
5101
1.05M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
1.05M
        "Scan argument types must not be references");
5103
1.05M
}
void scn::v3::detail::check_scan_arg_types<unsigned int>()
Line
Count
Source
5095
941k
{
5096
941k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
941k
                  "Scan argument types must be default constructible");
5098
941k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
941k
                  "Scan argument types must be Destructible");
5100
941k
    static_assert(
5101
941k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
941k
        "Scan argument types must not be references");
5103
941k
}
void scn::v3::detail::check_scan_arg_types<double>()
Line
Count
Source
5095
1.68M
{
5096
1.68M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
1.68M
                  "Scan argument types must be default constructible");
5098
1.68M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
1.68M
                  "Scan argument types must be Destructible");
5100
1.68M
    static_assert(
5101
1.68M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
1.68M
        "Scan argument types must not be references");
5103
1.68M
}
void scn::v3::detail::check_scan_arg_types<bool>()
Line
Count
Source
5095
44.0k
{
5096
44.0k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
44.0k
                  "Scan argument types must be default constructible");
5098
44.0k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
44.0k
                  "Scan argument types must be Destructible");
5100
44.0k
    static_assert(
5101
44.0k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
44.0k
        "Scan argument types must not be references");
5103
44.0k
}
void scn::v3::detail::check_scan_arg_types<void*>()
Line
Count
Source
5095
44.0k
{
5096
44.0k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
44.0k
                  "Scan argument types must be default constructible");
5098
44.0k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
44.0k
                  "Scan argument types must be Destructible");
5100
44.0k
    static_assert(
5101
44.0k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
44.0k
        "Scan argument types must not be references");
5103
44.0k
}
void scn::v3::detail::check_scan_arg_types<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
5095
361k
{
5096
361k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
361k
                  "Scan argument types must be default constructible");
5098
361k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
361k
                  "Scan argument types must be Destructible");
5100
361k
    static_assert(
5101
361k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
361k
        "Scan argument types must not be references");
5103
361k
}
void scn::v3::detail::check_scan_arg_types<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
5095
36.6M
{
5096
36.6M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
36.6M
                  "Scan argument types must be default constructible");
5098
36.6M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
36.6M
                  "Scan argument types must be Destructible");
5100
36.6M
    static_assert(
5101
36.6M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
36.6M
        "Scan argument types must not be references");
5103
36.6M
}
void scn::v3::detail::check_scan_arg_types<std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Line
Count
Source
5095
172k
{
5096
172k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
172k
                  "Scan argument types must be default constructible");
5098
172k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
172k
                  "Scan argument types must be Destructible");
5100
172k
    static_assert(
5101
172k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
172k
        "Scan argument types must not be references");
5103
172k
}
void scn::v3::detail::check_scan_arg_types<wchar_t>()
Line
Count
Source
5095
29.3k
{
5096
29.3k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
29.3k
                  "Scan argument types must be default constructible");
5098
29.3k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
29.3k
                  "Scan argument types must be Destructible");
5100
29.3k
    static_assert(
5101
29.3k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
29.3k
        "Scan argument types must not be references");
5103
29.3k
}
void scn::v3::detail::check_scan_arg_types<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Line
Count
Source
5095
18.3M
{
5096
18.3M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
18.3M
                  "Scan argument types must be default constructible");
5098
18.3M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
18.3M
                  "Scan argument types must be Destructible");
5100
18.3M
    static_assert(
5101
18.3M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
18.3M
        "Scan argument types must not be references");
5103
18.3M
}
void scn::v3::detail::check_scan_arg_types<signed char>()
Line
Count
Source
5095
842k
{
5096
842k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
842k
                  "Scan argument types must be default constructible");
5098
842k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
842k
                  "Scan argument types must be Destructible");
5100
842k
    static_assert(
5101
842k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
842k
        "Scan argument types must not be references");
5103
842k
}
void scn::v3::detail::check_scan_arg_types<unsigned char>()
Line
Count
Source
5095
814k
{
5096
814k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
814k
                  "Scan argument types must be default constructible");
5098
814k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
814k
                  "Scan argument types must be Destructible");
5100
814k
    static_assert(
5101
814k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
814k
        "Scan argument types must not be references");
5103
814k
}
void scn::v3::detail::check_scan_arg_types<long long>()
Line
Count
Source
5095
1.02M
{
5096
1.02M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
1.02M
                  "Scan argument types must be default constructible");
5098
1.02M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
1.02M
                  "Scan argument types must be Destructible");
5100
1.02M
    static_assert(
5101
1.02M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
1.02M
        "Scan argument types must not be references");
5103
1.02M
}
void scn::v3::detail::check_scan_arg_types<unsigned long long>()
Line
Count
Source
5095
905k
{
5096
905k
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
905k
                  "Scan argument types must be default constructible");
5098
905k
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
905k
                  "Scan argument types must be Destructible");
5100
905k
    static_assert(
5101
905k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
905k
        "Scan argument types must not be references");
5103
905k
}
void scn::v3::detail::check_scan_arg_types<float>()
Line
Count
Source
5095
1.52M
{
5096
1.52M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
1.52M
                  "Scan argument types must be default constructible");
5098
1.52M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
1.52M
                  "Scan argument types must be Destructible");
5100
1.52M
    static_assert(
5101
1.52M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
1.52M
        "Scan argument types must not be references");
5103
1.52M
}
void scn::v3::detail::check_scan_arg_types<long double>()
Line
Count
Source
5095
1.66M
{
5096
1.66M
    static_assert(std::conjunction_v<std::is_default_constructible<Args>...>,
5097
1.66M
                  "Scan argument types must be default constructible");
5098
1.66M
    static_assert(std::conjunction_v<std::is_destructible<Args>...>,
5099
1.66M
                  "Scan argument types must be Destructible");
5100
1.66M
    static_assert(
5101
1.66M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>,
5102
1.66M
        "Scan argument types must not be references");
5103
1.66M
}
5104
5105
enum class scan_arg_store_kind {
5106
    // only built-in types (no custom types), packed
5107
    builtin,
5108
5109
    packed,
5110
    unpacked
5111
};
5112
5113
template <typename Context, typename T>
5114
constexpr basic_scan_arg<Context> make_arg(T& value)
5115
11.9M
{
5116
11.9M
    check_scan_arg_types<T>();
5117
5118
11.9M
    basic_scan_arg<Context> arg;
5119
11.9M
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
11.9M
    arg.m_value = make_value<Context>(value);
5121
11.9M
    return arg;
5122
11.9M
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, signed char>(signed char&)
Line
Count
Source
5115
52.5k
{
5116
52.5k
    check_scan_arg_types<T>();
5117
5118
52.5k
    basic_scan_arg<Context> arg;
5119
52.5k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
52.5k
    arg.m_value = make_value<Context>(value);
5121
52.5k
    return arg;
5122
52.5k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, unsigned char>(unsigned char&)
Line
Count
Source
5115
46.6k
{
5116
46.6k
    check_scan_arg_types<T>();
5117
5118
46.6k
    basic_scan_arg<Context> arg;
5119
46.6k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
46.6k
    arg.m_value = make_value<Context>(value);
5121
46.6k
    return arg;
5122
46.6k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, int>(int&)
Line
Count
Source
5115
60.2k
{
5116
60.2k
    check_scan_arg_types<T>();
5117
5118
60.2k
    basic_scan_arg<Context> arg;
5119
60.2k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
60.2k
    arg.m_value = make_value<Context>(value);
5121
60.2k
    return arg;
5122
60.2k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, unsigned int>(unsigned int&)
Line
Count
Source
5115
51.9k
{
5116
51.9k
    check_scan_arg_types<T>();
5117
5118
51.9k
    basic_scan_arg<Context> arg;
5119
51.9k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
51.9k
    arg.m_value = make_value<Context>(value);
5121
51.9k
    return arg;
5122
51.9k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, long long>(long long&)
Line
Count
Source
5115
61.3k
{
5116
61.3k
    check_scan_arg_types<T>();
5117
5118
61.3k
    basic_scan_arg<Context> arg;
5119
61.3k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
61.3k
    arg.m_value = make_value<Context>(value);
5121
61.3k
    return arg;
5122
61.3k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, unsigned long long>(unsigned long long&)
Line
Count
Source
5115
52.6k
{
5116
52.6k
    check_scan_arg_types<T>();
5117
5118
52.6k
    basic_scan_arg<Context> arg;
5119
52.6k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
52.6k
    arg.m_value = make_value<Context>(value);
5121
52.6k
    return arg;
5122
52.6k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, signed char>(signed char&)
Line
Count
Source
5115
7.87k
{
5116
7.87k
    check_scan_arg_types<T>();
5117
5118
7.87k
    basic_scan_arg<Context> arg;
5119
7.87k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.87k
    arg.m_value = make_value<Context>(value);
5121
7.87k
    return arg;
5122
7.87k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, unsigned char>(unsigned char&)
Line
Count
Source
5115
7.85k
{
5116
7.85k
    check_scan_arg_types<T>();
5117
5118
7.85k
    basic_scan_arg<Context> arg;
5119
7.85k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.85k
    arg.m_value = make_value<Context>(value);
5121
7.85k
    return arg;
5122
7.85k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, int>(int&)
Line
Count
Source
5115
7.89k
{
5116
7.89k
    check_scan_arg_types<T>();
5117
5118
7.89k
    basic_scan_arg<Context> arg;
5119
7.89k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.89k
    arg.m_value = make_value<Context>(value);
5121
7.89k
    return arg;
5122
7.89k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, unsigned int>(unsigned int&)
Line
Count
Source
5115
7.86k
{
5116
7.86k
    check_scan_arg_types<T>();
5117
5118
7.86k
    basic_scan_arg<Context> arg;
5119
7.86k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.86k
    arg.m_value = make_value<Context>(value);
5121
7.86k
    return arg;
5122
7.86k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, long long>(long long&)
Line
Count
Source
5115
7.92k
{
5116
7.92k
    check_scan_arg_types<T>();
5117
5118
7.92k
    basic_scan_arg<Context> arg;
5119
7.92k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.92k
    arg.m_value = make_value<Context>(value);
5121
7.92k
    return arg;
5122
7.92k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, unsigned long long>(unsigned long long&)
Line
Count
Source
5115
7.89k
{
5116
7.89k
    check_scan_arg_types<T>();
5117
5118
7.89k
    basic_scan_arg<Context> arg;
5119
7.89k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.89k
    arg.m_value = make_value<Context>(value);
5121
7.89k
    return arg;
5122
7.89k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5115
60.9k
{
5116
60.9k
    check_scan_arg_types<T>();
5117
5118
60.9k
    basic_scan_arg<Context> arg;
5119
60.9k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
60.9k
    arg.m_value = make_value<Context>(value);
5121
60.9k
    return arg;
5122
60.9k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5115
30.2k
{
5116
30.2k
    check_scan_arg_types<T>();
5117
5118
30.2k
    basic_scan_arg<Context> arg;
5119
30.2k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
30.2k
    arg.m_value = make_value<Context>(value);
5121
30.2k
    return arg;
5122
30.2k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5115
7.32M
{
5116
7.32M
    check_scan_arg_types<T>();
5117
5118
7.32M
    basic_scan_arg<Context> arg;
5119
7.32M
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
7.32M
    arg.m_value = make_value<Context>(value);
5121
7.32M
    return arg;
5122
7.32M
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5115
3.66M
{
5116
3.66M
    check_scan_arg_types<T>();
5117
5118
3.66M
    basic_scan_arg<Context> arg;
5119
3.66M
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
3.66M
    arg.m_value = make_value<Context>(value);
5121
3.66M
    return arg;
5122
3.66M
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, float>(float&)
Line
Count
Source
5115
130k
{
5116
130k
    check_scan_arg_types<T>();
5117
5118
130k
    basic_scan_arg<Context> arg;
5119
130k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
130k
    arg.m_value = make_value<Context>(value);
5121
130k
    return arg;
5122
130k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, double>(double&)
Line
Count
Source
5115
145k
{
5116
145k
    check_scan_arg_types<T>();
5117
5118
145k
    basic_scan_arg<Context> arg;
5119
145k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
145k
    arg.m_value = make_value<Context>(value);
5121
145k
    return arg;
5122
145k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<char>, long double>(long double&)
Line
Count
Source
5115
147k
{
5116
147k
    check_scan_arg_types<T>();
5117
5118
147k
    basic_scan_arg<Context> arg;
5119
147k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
147k
    arg.m_value = make_value<Context>(value);
5121
147k
    return arg;
5122
147k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, float>(float&)
Line
Count
Source
5115
12.3k
{
5116
12.3k
    check_scan_arg_types<T>();
5117
5118
12.3k
    basic_scan_arg<Context> arg;
5119
12.3k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
12.3k
    arg.m_value = make_value<Context>(value);
5121
12.3k
    return arg;
5122
12.3k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, double>(double&)
Line
Count
Source
5115
12.3k
{
5116
12.3k
    check_scan_arg_types<T>();
5117
5118
12.3k
    basic_scan_arg<Context> arg;
5119
12.3k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
12.3k
    arg.m_value = make_value<Context>(value);
5121
12.3k
    return arg;
5122
12.3k
}
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> > scn::v3::detail::make_arg<scn::v3::basic_scan_context<wchar_t>, long double>(long double&)
Line
Count
Source
5115
12.3k
{
5116
12.3k
    check_scan_arg_types<T>();
5117
5118
12.3k
    basic_scan_arg<Context> arg;
5119
12.3k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5120
12.3k
    arg.m_value = make_value<Context>(value);
5121
12.3k
    return arg;
5122
12.3k
}
5123
5124
template <scan_arg_store_kind Kind,
5125
          typename Context,
5126
          arg_type,
5127
          typename T,
5128
          typename = std::enable_if_t<Kind == scan_arg_store_kind::builtin>>
5129
constexpr void* make_arg(T& value)
5130
54.2M
{
5131
54.2M
    return make_value<Context>(value).ref_value;
5132
54.2M
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)12, char, void>(char&)
Line
Count
Source
5130
14.6k
{
5131
14.6k
    return make_value<Context>(value).ref_value;
5132
14.6k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)3, int, void>(int&)
Line
Count
Source
5130
802k
{
5131
802k
    return make_value<Context>(value).ref_value;
5132
802k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)8, unsigned int, void>(unsigned int&)
Line
Count
Source
5130
695k
{
5131
695k
    return make_value<Context>(value).ref_value;
5132
695k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)17, double, void>(double&)
Line
Count
Source
5130
1.35M
{
5131
1.35M
    return make_value<Context>(value).ref_value;
5132
1.35M
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)11, bool, void>(bool&)
Line
Count
Source
5130
14.6k
{
5131
14.6k
    return make_value<Context>(value).ref_value;
5132
14.6k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)15, void*, void>(void*&)
Line
Count
Source
5130
14.6k
{
5131
14.6k
    return make_value<Context>(value).ref_value;
5132
14.6k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)21, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5130
271k
{
5131
271k
    return make_value<Context>(value).ref_value;
5132
271k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)22, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, void>(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5130
14.6k
{
5131
14.6k
    return make_value<Context>(value).ref_value;
5132
14.6k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)19, std::__1::basic_string_view<char, std::__1::char_traits<char> >, void>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5130
142k
{
5131
142k
    return make_value<Context>(value).ref_value;
5132
142k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)13, wchar_t, void>(wchar_t&)
Line
Count
Source
5130
29.3k
{
5131
29.3k
    return make_value<Context>(value).ref_value;
5132
29.3k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)3, int, void>(int&)
Line
Count
Source
5130
186k
{
5131
186k
    return make_value<Context>(value).ref_value;
5132
186k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)8, unsigned int, void>(unsigned int&)
Line
Count
Source
5130
186k
{
5131
186k
    return make_value<Context>(value).ref_value;
5132
186k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)17, double, void>(double&)
Line
Count
Source
5130
175k
{
5131
175k
    return make_value<Context>(value).ref_value;
5132
175k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)11, bool, void>(bool&)
Line
Count
Source
5130
29.3k
{
5131
29.3k
    return make_value<Context>(value).ref_value;
5132
29.3k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)15, void*, void>(void*&)
Line
Count
Source
5130
29.3k
{
5131
29.3k
    return make_value<Context>(value).ref_value;
5132
29.3k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)21, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5130
29.3k
{
5131
29.3k
    return make_value<Context>(value).ref_value;
5132
29.3k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)22, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, void>(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5130
29.3M
{
5131
29.3M
    return make_value<Context>(value).ref_value;
5132
29.3M
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)20, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, void>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5130
14.6M
{
5131
14.6M
    return make_value<Context>(value).ref_value;
5132
14.6M
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)1, signed char, void>(signed char&)
Line
Count
Source
5130
624k
{
5131
624k
    return make_value<Context>(value).ref_value;
5132
624k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)6, unsigned char, void>(unsigned char&)
Line
Count
Source
5130
603k
{
5131
603k
    return make_value<Context>(value).ref_value;
5132
603k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)5, long long, void>(long long&)
Line
Count
Source
5130
801k
{
5131
801k
    return make_value<Context>(value).ref_value;
5132
801k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)10, unsigned long long, void>(unsigned long long&)
Line
Count
Source
5130
688k
{
5131
688k
    return make_value<Context>(value).ref_value;
5132
688k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)1, signed char, void>(signed char&)
Line
Count
Source
5130
156k
{
5131
156k
    return make_value<Context>(value).ref_value;
5132
156k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)6, unsigned char, void>(unsigned char&)
Line
Count
Source
5130
156k
{
5131
156k
    return make_value<Context>(value).ref_value;
5132
156k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)5, long long, void>(long long&)
Line
Count
Source
5130
157k
{
5131
157k
    return make_value<Context>(value).ref_value;
5132
157k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)10, unsigned long long, void>(unsigned long long&)
Line
Count
Source
5130
156k
{
5131
156k
    return make_value<Context>(value).ref_value;
5132
156k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)16, float, void>(float&)
Line
Count
Source
5130
1.23M
{
5131
1.23M
    return make_value<Context>(value).ref_value;
5132
1.23M
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<char>, (scn::v3::detail::arg_type)18, long double, void>(long double&)
Line
Count
Source
5130
1.35M
{
5131
1.35M
    return make_value<Context>(value).ref_value;
5132
1.35M
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)16, float, void>(float&)
Line
Count
Source
5130
145k
{
5131
145k
    return make_value<Context>(value).ref_value;
5132
145k
}
void* scn::v3::detail::make_arg<(scn::v3::detail::scan_arg_store_kind)0, scn::v3::basic_scan_context<wchar_t>, (scn::v3::detail::arg_type)18, long double, void>(long double&)
Line
Count
Source
5130
145k
{
5131
145k
    return make_value<Context>(value).ref_value;
5132
145k
}
5133
template <scan_arg_store_kind Kind,
5134
          typename Context,
5135
          arg_type,
5136
          typename T,
5137
          typename = std::enable_if_t<Kind == scan_arg_store_kind::packed>>
5138
constexpr arg_value make_arg(T& value)
5139
{
5140
    return make_value<Context>(value);
5141
}
5142
template <scan_arg_store_kind Kind,
5143
          typename Context,
5144
          arg_type,
5145
          typename T,
5146
          typename = std::enable_if_t<Kind == scan_arg_store_kind::unpacked>>
5147
constexpr basic_scan_arg<Context> make_arg(T&& value)
5148
{
5149
    return make_arg<Context>(SCN_FWD(value));
5150
}
5151
5152
template <typename Context>
5153
constexpr arg_value& get_arg_value(basic_scan_arg<Context>& arg);
5154
}  // namespace detail
5155
5156
template <typename Visitor, typename Ctx>
5157
constexpr decltype(auto) visit_scan_arg(Visitor&& vis,
5158
                                        basic_scan_arg<Ctx>& arg);
5159
5160
/**
5161
 * Type-erased scanning argument.
5162
 *
5163
 * Contains a pointer to the value contained in a `scan_arg_store`.
5164
 */
5165
template <typename Context>
5166
class basic_scan_arg {
5167
public:
5168
    /**
5169
     * Enables scanning of a user-defined type.
5170
     *
5171
     * Contains a pointer to the value contained in a `scan_arg_store`, and
5172
     * a callback for parsing the format string, and scanning the value.
5173
     *
5174
     * \see scn::visit_scan_arg
5175
     */
5176
    class handle {
5177
    public:
5178
        /**
5179
         * Parse the format string in `parse_ctx`, and scan the value from
5180
         * `ctx`.
5181
         *
5182
         * \return Any error returned by the scanner
5183
         */
5184
        scan_error scan(typename Context::parse_context_type& parse_ctx,
5185
                        Context& ctx) const
5186
0
        {
5187
0
            return m_custom.scan(m_custom.value, &parse_ctx, &ctx);
5188
0
        }
Unexecuted instantiation: scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >::handle::scan(scn::v3::basic_scan_parse_context<char>&, scn::v3::basic_scan_context<char>&) const
Unexecuted instantiation: scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >::handle::scan(scn::v3::basic_scan_parse_context<wchar_t>&, scn::v3::basic_scan_context<wchar_t>&) const
5189
5190
    private:
5191
0
        explicit handle(detail::custom_value_type custom) : m_custom(custom) {}
Unexecuted instantiation: scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >::handle::handle(scn::v3::detail::custom_value_type)
Unexecuted instantiation: scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >::handle::handle(scn::v3::detail::custom_value_type)
5192
5193
        template <typename Visitor, typename C>
5194
        friend constexpr decltype(auto) visit_scan_arg(Visitor&& vis,
5195
                                                       basic_scan_arg<C>& arg);
5196
5197
        detail::custom_value_type m_custom;
5198
    };
5199
5200
    /// Construct a `basic_scan_arg` which doesn't contain an argument.
5201
65.8M
    constexpr basic_scan_arg() = default;
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >::basic_scan_arg()
Line
Count
Source
5201
9.45M
    constexpr basic_scan_arg() = default;
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >::basic_scan_arg()
Line
Count
Source
5201
56.4M
    constexpr basic_scan_arg() = default;
5202
5203
    /**
5204
     * @return `true` if `*this` contains an argument
5205
     */
5206
    constexpr explicit operator bool() const noexcept
5207
95.5M
    {
5208
95.5M
        return m_type != detail::arg_type::none_type;
5209
95.5M
    }
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >::operator bool() const
Line
Count
Source
5207
16.2M
    {
5208
16.2M
        return m_type != detail::arg_type::none_type;
5209
16.2M
    }
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >::operator bool() const
Line
Count
Source
5207
79.3M
    {
5208
79.3M
        return m_type != detail::arg_type::none_type;
5209
79.3M
    }
5210
5211
    SCN_NODISCARD constexpr detail::arg_type type() const
5212
60.2M
    {
5213
60.2M
        return m_type;
5214
60.2M
    }
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >::type() const
Line
Count
Source
5212
13.8M
    {
5213
13.8M
        return m_type;
5214
13.8M
    }
scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >::type() const
Line
Count
Source
5212
46.4M
    {
5213
46.4M
        return m_type;
5214
46.4M
    }
5215
5216
    SCN_NODISCARD constexpr detail::arg_value& value()
5217
    {
5218
        return m_value;
5219
    }
5220
    SCN_NODISCARD constexpr const detail::arg_value& value() const
5221
    {
5222
        return m_value;
5223
    }
5224
5225
private:
5226
    template <typename ContextType, typename T>
5227
    friend constexpr basic_scan_arg<ContextType> detail::make_arg(T& value);
5228
5229
    template <typename C>
5230
    friend constexpr detail::arg_value& detail::get_arg_value(
5231
        basic_scan_arg<C>& arg);
5232
5233
    template <typename Visitor, typename C>
5234
    friend constexpr decltype(auto) visit_scan_arg(Visitor&& vis,
5235
                                                   basic_scan_arg<C>& arg);
5236
5237
    friend class basic_scan_args<Context>;
5238
5239
    detail::arg_value m_value{};
5240
    detail::arg_type m_type{detail::arg_type::none_type};
5241
};
5242
5243
namespace detail {
5244
template <typename Context>
5245
constexpr arg_value& get_arg_value(basic_scan_arg<Context>& arg)
5246
{
5247
    return arg.m_value;
5248
}
5249
5250
template <typename CharT>
5251
constexpr bool all_types_builtin()
5252
0
{
5253
0
    return true;
5254
0
}
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t>()
5255
template <typename CharT, typename T, typename... Args>
5256
constexpr bool all_types_builtin()
5257
0
{
5258
0
    return mapped_type_constant<T, CharT>::value != arg_type::custom_type &&
5259
0
           all_types_builtin<CharT, Args...>();
5260
0
}
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, char>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, int>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, unsigned int>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, double>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, bool>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, void*>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, wchar_t>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, int>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, unsigned int>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, double>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, bool>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, void*>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, signed char>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, unsigned char>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, long long>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, unsigned long long>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, signed char>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, unsigned char>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, long long>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, unsigned long long>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, float>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<char, long double>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, float>()
Unexecuted instantiation: bool scn::v3::detail::all_types_builtin<wchar_t, long double>()
5261
5262
template <typename CharT, typename... Args>
5263
constexpr scan_arg_store_kind determine_arg_store_kind()
5264
0
{
5265
0
    if (sizeof...(Args) > max_packed_args) {
5266
0
        return scan_arg_store_kind::unpacked;
5267
0
    }
5268
0
#if !(SCN_CLANG && SCN_APPLE)
5269
0
    // This doesn't work on Apple Clang. I don't know why
5270
0
    if (all_types_builtin<CharT, Args...>()) {
5271
0
        return scan_arg_store_kind::builtin;
5272
0
    }
5273
0
#endif
5274
0
    return scan_arg_store_kind::packed;
5275
0
}
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, char>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, int>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, unsigned int>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, double>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, bool>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, void*>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, wchar_t>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, int>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, unsigned int>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, double>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, bool>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, void*>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, signed char>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, unsigned char>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, long long>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, unsigned long long>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, signed char>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, unsigned char>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, long long>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, unsigned long long>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, float>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<char, long double>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, float>()
Unexecuted instantiation: scn::v3::detail::scan_arg_store_kind scn::v3::detail::determine_arg_store_kind<wchar_t, long double>()
5276
5277
template <scan_arg_store_kind Kind, typename CharT, typename... Args>
5278
constexpr size_t compute_arg_store_desc()
5279
0
{
5280
0
    if constexpr (Kind == scan_arg_store_kind::builtin) {
5281
0
        return encode_types<CharT, Args...>();
5282
0
    }
5283
0
    else if constexpr (Kind == scan_arg_store_kind::packed) {
5284
0
        return encode_types<CharT, Args...>() | has_custom_types_bit;
5285
0
    }
5286
0
    else {
5287
0
        return sizeof...(Args) | is_unpacked_bit;
5288
0
    }
5289
0
}
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, char>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, int>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, unsigned int>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, double>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, bool>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, void*>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, wchar_t>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, int>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, unsigned int>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, double>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, bool>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, void*>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, signed char>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, unsigned char>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, unsigned long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, signed char>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, unsigned char>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, unsigned long long>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, float>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, char, long double>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, float>()
Unexecuted instantiation: unsigned long scn::v3::detail::compute_arg_store_desc<(scn::v3::detail::scan_arg_store_kind)0, wchar_t, long double>()
5290
5291
template <typename Context, typename... Args>
5292
class scan_arg_store {
5293
public:
5294
    static constexpr scan_arg_store_kind kind =
5295
        determine_arg_store_kind<typename Context::char_type, Args...>();
5296
    static constexpr size_t desc =
5297
        compute_arg_store_desc<kind, typename Context::char_type, Args...>();
5298
5299
    using argptr_type = std::conditional_t<
5300
        kind == scan_arg_store_kind::builtin,
5301
        void*,
5302
        std::conditional_t<kind == scan_arg_store_kind::packed,
5303
                           arg_value,
5304
                           basic_scan_arg<Context>>>;
5305
    using argptrs_type = std::array<argptr_type, sizeof...(Args)>;
5306
5307
    constexpr scan_arg_store()
5308
        : m_argptrs(std::apply(make_argptrs<Args...>, m_args))
5309
54.2M
    {
5310
54.2M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, char>::scan_arg_store()
Line
Count
Source
5309
14.6k
    {
5310
14.6k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, int>::scan_arg_store()
Line
Count
Source
5309
802k
    {
5310
802k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned int>::scan_arg_store()
Line
Count
Source
5309
695k
    {
5310
695k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, double>::scan_arg_store()
Line
Count
Source
5309
1.35M
    {
5310
1.35M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, bool>::scan_arg_store()
Line
Count
Source
5309
14.6k
    {
5310
14.6k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, void*>::scan_arg_store()
Line
Count
Source
5309
14.6k
    {
5310
14.6k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_arg_store()
Line
Count
Source
5309
271k
    {
5310
271k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_arg_store()
Line
Count
Source
5309
14.6k
    {
5310
14.6k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_arg_store()
Line
Count
Source
5309
142k
    {
5310
142k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, wchar_t>::scan_arg_store()
Line
Count
Source
5309
29.3k
    {
5310
29.3k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, int>::scan_arg_store()
Line
Count
Source
5309
186k
    {
5310
186k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned int>::scan_arg_store()
Line
Count
Source
5309
186k
    {
5310
186k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, double>::scan_arg_store()
Line
Count
Source
5309
175k
    {
5310
175k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, bool>::scan_arg_store()
Line
Count
Source
5309
29.3k
    {
5310
29.3k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, void*>::scan_arg_store()
Line
Count
Source
5309
29.3k
    {
5310
29.3k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_arg_store()
Line
Count
Source
5309
29.3k
    {
5310
29.3k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_arg_store()
Line
Count
Source
5309
29.3M
    {
5310
29.3M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_arg_store()
Line
Count
Source
5309
14.6M
    {
5310
14.6M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, signed char>::scan_arg_store()
Line
Count
Source
5309
624k
    {
5310
624k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned char>::scan_arg_store()
Line
Count
Source
5309
603k
    {
5310
603k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long long>::scan_arg_store()
Line
Count
Source
5309
801k
    {
5310
801k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned long long>::scan_arg_store()
Line
Count
Source
5309
688k
    {
5310
688k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, signed char>::scan_arg_store()
Line
Count
Source
5309
156k
    {
5310
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned char>::scan_arg_store()
Line
Count
Source
5309
156k
    {
5310
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long long>::scan_arg_store()
Line
Count
Source
5309
157k
    {
5310
157k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned long long>::scan_arg_store()
Line
Count
Source
5309
156k
    {
5310
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, float>::scan_arg_store()
Line
Count
Source
5309
1.23M
    {
5310
1.23M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long double>::scan_arg_store()
Line
Count
Source
5309
1.35M
    {
5310
1.35M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, float>::scan_arg_store()
Line
Count
Source
5309
145k
    {
5310
145k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long double>::scan_arg_store()
Line
Count
Source
5309
145k
    {
5310
145k
    }
5311
5312
    constexpr explicit scan_arg_store(std::tuple<Args...>&& a)
5313
        : m_args(std::move(a)),
5314
          m_argptrs(std::apply(make_argptrs<Args...>, m_args))
5315
    {
5316
    }
5317
5318
    template <typename... A>
5319
    static constexpr argptrs_type make_argptrs(A&... args)
5320
54.2M
    {
5321
54.2M
        return {detail::make_arg<
5322
54.2M
            kind, Context,
5323
54.2M
            mapped_type_constant<remove_cvref_t<A>,
5324
54.2M
                                 typename Context::char_type>::value>(args)...};
5325
54.2M
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, char>::make_argptrs<char>(char&)
Line
Count
Source
5320
14.6k
    {
5321
14.6k
        return {detail::make_arg<
5322
14.6k
            kind, Context,
5323
14.6k
            mapped_type_constant<remove_cvref_t<A>,
5324
14.6k
                                 typename Context::char_type>::value>(args)...};
5325
14.6k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, int>::make_argptrs<int>(int&)
Line
Count
Source
5320
802k
    {
5321
802k
        return {detail::make_arg<
5322
802k
            kind, Context,
5323
802k
            mapped_type_constant<remove_cvref_t<A>,
5324
802k
                                 typename Context::char_type>::value>(args)...};
5325
802k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned int>::make_argptrs<unsigned int>(unsigned int&)
Line
Count
Source
5320
695k
    {
5321
695k
        return {detail::make_arg<
5322
695k
            kind, Context,
5323
695k
            mapped_type_constant<remove_cvref_t<A>,
5324
695k
                                 typename Context::char_type>::value>(args)...};
5325
695k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, double>::make_argptrs<double>(double&)
Line
Count
Source
5320
1.35M
    {
5321
1.35M
        return {detail::make_arg<
5322
1.35M
            kind, Context,
5323
1.35M
            mapped_type_constant<remove_cvref_t<A>,
5324
1.35M
                                 typename Context::char_type>::value>(args)...};
5325
1.35M
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, bool>::make_argptrs<bool>(bool&)
Line
Count
Source
5320
14.6k
    {
5321
14.6k
        return {detail::make_arg<
5322
14.6k
            kind, Context,
5323
14.6k
            mapped_type_constant<remove_cvref_t<A>,
5324
14.6k
                                 typename Context::char_type>::value>(args)...};
5325
14.6k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, void*>::make_argptrs<void*>(void*&)
Line
Count
Source
5320
14.6k
    {
5321
14.6k
        return {detail::make_arg<
5322
14.6k
            kind, Context,
5323
14.6k
            mapped_type_constant<remove_cvref_t<A>,
5324
14.6k
                                 typename Context::char_type>::value>(args)...};
5325
14.6k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::make_argptrs<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5320
271k
    {
5321
271k
        return {detail::make_arg<
5322
271k
            kind, Context,
5323
271k
            mapped_type_constant<remove_cvref_t<A>,
5324
271k
                                 typename Context::char_type>::value>(args)...};
5325
271k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::make_argptrs<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5320
14.6k
    {
5321
14.6k
        return {detail::make_arg<
5322
14.6k
            kind, Context,
5323
14.6k
            mapped_type_constant<remove_cvref_t<A>,
5324
14.6k
                                 typename Context::char_type>::value>(args)...};
5325
14.6k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::make_argptrs<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5320
142k
    {
5321
142k
        return {detail::make_arg<
5322
142k
            kind, Context,
5323
142k
            mapped_type_constant<remove_cvref_t<A>,
5324
142k
                                 typename Context::char_type>::value>(args)...};
5325
142k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, wchar_t>::make_argptrs<wchar_t>(wchar_t&)
Line
Count
Source
5320
29.3k
    {
5321
29.3k
        return {detail::make_arg<
5322
29.3k
            kind, Context,
5323
29.3k
            mapped_type_constant<remove_cvref_t<A>,
5324
29.3k
                                 typename Context::char_type>::value>(args)...};
5325
29.3k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, int>::make_argptrs<int>(int&)
Line
Count
Source
5320
186k
    {
5321
186k
        return {detail::make_arg<
5322
186k
            kind, Context,
5323
186k
            mapped_type_constant<remove_cvref_t<A>,
5324
186k
                                 typename Context::char_type>::value>(args)...};
5325
186k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned int>::make_argptrs<unsigned int>(unsigned int&)
Line
Count
Source
5320
186k
    {
5321
186k
        return {detail::make_arg<
5322
186k
            kind, Context,
5323
186k
            mapped_type_constant<remove_cvref_t<A>,
5324
186k
                                 typename Context::char_type>::value>(args)...};
5325
186k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, double>::make_argptrs<double>(double&)
Line
Count
Source
5320
175k
    {
5321
175k
        return {detail::make_arg<
5322
175k
            kind, Context,
5323
175k
            mapped_type_constant<remove_cvref_t<A>,
5324
175k
                                 typename Context::char_type>::value>(args)...};
5325
175k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, bool>::make_argptrs<bool>(bool&)
Line
Count
Source
5320
29.3k
    {
5321
29.3k
        return {detail::make_arg<
5322
29.3k
            kind, Context,
5323
29.3k
            mapped_type_constant<remove_cvref_t<A>,
5324
29.3k
                                 typename Context::char_type>::value>(args)...};
5325
29.3k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, void*>::make_argptrs<void*>(void*&)
Line
Count
Source
5320
29.3k
    {
5321
29.3k
        return {detail::make_arg<
5322
29.3k
            kind, Context,
5323
29.3k
            mapped_type_constant<remove_cvref_t<A>,
5324
29.3k
                                 typename Context::char_type>::value>(args)...};
5325
29.3k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::make_argptrs<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5320
29.3k
    {
5321
29.3k
        return {detail::make_arg<
5322
29.3k
            kind, Context,
5323
29.3k
            mapped_type_constant<remove_cvref_t<A>,
5324
29.3k
                                 typename Context::char_type>::value>(args)...};
5325
29.3k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::make_argptrs<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5320
29.3M
    {
5321
29.3M
        return {detail::make_arg<
5322
29.3M
            kind, Context,
5323
29.3M
            mapped_type_constant<remove_cvref_t<A>,
5324
29.3M
                                 typename Context::char_type>::value>(args)...};
5325
29.3M
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::make_argptrs<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5320
14.6M
    {
5321
14.6M
        return {detail::make_arg<
5322
14.6M
            kind, Context,
5323
14.6M
            mapped_type_constant<remove_cvref_t<A>,
5324
14.6M
                                 typename Context::char_type>::value>(args)...};
5325
14.6M
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, signed char>::make_argptrs<signed char>(signed char&)
Line
Count
Source
5320
624k
    {
5321
624k
        return {detail::make_arg<
5322
624k
            kind, Context,
5323
624k
            mapped_type_constant<remove_cvref_t<A>,
5324
624k
                                 typename Context::char_type>::value>(args)...};
5325
624k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned char>::make_argptrs<unsigned char>(unsigned char&)
Line
Count
Source
5320
603k
    {
5321
603k
        return {detail::make_arg<
5322
603k
            kind, Context,
5323
603k
            mapped_type_constant<remove_cvref_t<A>,
5324
603k
                                 typename Context::char_type>::value>(args)...};
5325
603k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long long>::make_argptrs<long long>(long long&)
Line
Count
Source
5320
801k
    {
5321
801k
        return {detail::make_arg<
5322
801k
            kind, Context,
5323
801k
            mapped_type_constant<remove_cvref_t<A>,
5324
801k
                                 typename Context::char_type>::value>(args)...};
5325
801k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned long long>::make_argptrs<unsigned long long>(unsigned long long&)
Line
Count
Source
5320
688k
    {
5321
688k
        return {detail::make_arg<
5322
688k
            kind, Context,
5323
688k
            mapped_type_constant<remove_cvref_t<A>,
5324
688k
                                 typename Context::char_type>::value>(args)...};
5325
688k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, signed char>::make_argptrs<signed char>(signed char&)
Line
Count
Source
5320
156k
    {
5321
156k
        return {detail::make_arg<
5322
156k
            kind, Context,
5323
156k
            mapped_type_constant<remove_cvref_t<A>,
5324
156k
                                 typename Context::char_type>::value>(args)...};
5325
156k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned char>::make_argptrs<unsigned char>(unsigned char&)
Line
Count
Source
5320
156k
    {
5321
156k
        return {detail::make_arg<
5322
156k
            kind, Context,
5323
156k
            mapped_type_constant<remove_cvref_t<A>,
5324
156k
                                 typename Context::char_type>::value>(args)...};
5325
156k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long long>::make_argptrs<long long>(long long&)
Line
Count
Source
5320
157k
    {
5321
157k
        return {detail::make_arg<
5322
157k
            kind, Context,
5323
157k
            mapped_type_constant<remove_cvref_t<A>,
5324
157k
                                 typename Context::char_type>::value>(args)...};
5325
157k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned long long>::make_argptrs<unsigned long long>(unsigned long long&)
Line
Count
Source
5320
156k
    {
5321
156k
        return {detail::make_arg<
5322
156k
            kind, Context,
5323
156k
            mapped_type_constant<remove_cvref_t<A>,
5324
156k
                                 typename Context::char_type>::value>(args)...};
5325
156k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, float>::make_argptrs<float>(float&)
Line
Count
Source
5320
1.23M
    {
5321
1.23M
        return {detail::make_arg<
5322
1.23M
            kind, Context,
5323
1.23M
            mapped_type_constant<remove_cvref_t<A>,
5324
1.23M
                                 typename Context::char_type>::value>(args)...};
5325
1.23M
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long double>::make_argptrs<long double>(long double&)
Line
Count
Source
5320
1.35M
    {
5321
1.35M
        return {detail::make_arg<
5322
1.35M
            kind, Context,
5323
1.35M
            mapped_type_constant<remove_cvref_t<A>,
5324
1.35M
                                 typename Context::char_type>::value>(args)...};
5325
1.35M
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, float>::make_argptrs<float>(float&)
Line
Count
Source
5320
145k
    {
5321
145k
        return {detail::make_arg<
5322
145k
            kind, Context,
5323
145k
            mapped_type_constant<remove_cvref_t<A>,
5324
145k
                                 typename Context::char_type>::value>(args)...};
5325
145k
    }
std::__1::array<void*, 1ul> scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long double>::make_argptrs<long double>(long double&)
Line
Count
Source
5320
145k
    {
5321
145k
        return {detail::make_arg<
5322
145k
            kind, Context,
5323
145k
            mapped_type_constant<remove_cvref_t<A>,
5324
145k
                                 typename Context::char_type>::value>(args)...};
5325
145k
    }
5326
5327
    scan_arg_store(const scan_arg_store&) = delete;
5328
    scan_arg_store(scan_arg_store&&) = delete;
5329
    scan_arg_store& operator=(const scan_arg_store&) = delete;
5330
    scan_arg_store& operator=(scan_arg_store&&) = delete;
5331
29.6M
    ~scan_arg_store() = default;
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_arg_store()
Line
Count
Source
5331
271k
    ~scan_arg_store() = default;
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_arg_store()
Line
Count
Source
5331
14.6k
    ~scan_arg_store() = default;
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_arg_store()
Line
Count
Source
5331
29.3k
    ~scan_arg_store() = default;
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_arg_store()
Line
Count
Source
5331
29.3M
    ~scan_arg_store() = default;
5332
5333
    std::tuple<Args...>& args()
5334
54.2M
    {
5335
54.2M
        return m_args;
5336
54.2M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, char>::args()
Line
Count
Source
5334
14.6k
    {
5335
14.6k
        return m_args;
5336
14.6k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, int>::args()
Line
Count
Source
5334
802k
    {
5335
802k
        return m_args;
5336
802k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned int>::args()
Line
Count
Source
5334
695k
    {
5335
695k
        return m_args;
5336
695k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, double>::args()
Line
Count
Source
5334
1.35M
    {
5335
1.35M
        return m_args;
5336
1.35M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, bool>::args()
Line
Count
Source
5334
14.6k
    {
5335
14.6k
        return m_args;
5336
14.6k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, void*>::args()
Line
Count
Source
5334
14.6k
    {
5335
14.6k
        return m_args;
5336
14.6k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::args()
Line
Count
Source
5334
271k
    {
5335
271k
        return m_args;
5336
271k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::args()
Line
Count
Source
5334
14.6k
    {
5335
14.6k
        return m_args;
5336
14.6k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::args()
Line
Count
Source
5334
142k
    {
5335
142k
        return m_args;
5336
142k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, wchar_t>::args()
Line
Count
Source
5334
29.3k
    {
5335
29.3k
        return m_args;
5336
29.3k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, int>::args()
Line
Count
Source
5334
186k
    {
5335
186k
        return m_args;
5336
186k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned int>::args()
Line
Count
Source
5334
186k
    {
5335
186k
        return m_args;
5336
186k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, double>::args()
Line
Count
Source
5334
175k
    {
5335
175k
        return m_args;
5336
175k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, bool>::args()
Line
Count
Source
5334
29.3k
    {
5335
29.3k
        return m_args;
5336
29.3k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, void*>::args()
Line
Count
Source
5334
29.3k
    {
5335
29.3k
        return m_args;
5336
29.3k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::args()
Line
Count
Source
5334
29.3k
    {
5335
29.3k
        return m_args;
5336
29.3k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::args()
Line
Count
Source
5334
29.3M
    {
5335
29.3M
        return m_args;
5336
29.3M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::args()
Line
Count
Source
5334
14.6M
    {
5335
14.6M
        return m_args;
5336
14.6M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, signed char>::args()
Line
Count
Source
5334
624k
    {
5335
624k
        return m_args;
5336
624k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned char>::args()
Line
Count
Source
5334
603k
    {
5335
603k
        return m_args;
5336
603k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long long>::args()
Line
Count
Source
5334
801k
    {
5335
801k
        return m_args;
5336
801k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned long long>::args()
Line
Count
Source
5334
688k
    {
5335
688k
        return m_args;
5336
688k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, signed char>::args()
Line
Count
Source
5334
156k
    {
5335
156k
        return m_args;
5336
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned char>::args()
Line
Count
Source
5334
156k
    {
5335
156k
        return m_args;
5336
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long long>::args()
Line
Count
Source
5334
157k
    {
5335
157k
        return m_args;
5336
157k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned long long>::args()
Line
Count
Source
5334
156k
    {
5335
156k
        return m_args;
5336
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, float>::args()
Line
Count
Source
5334
1.23M
    {
5335
1.23M
        return m_args;
5336
1.23M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long double>::args()
Line
Count
Source
5334
1.35M
    {
5335
1.35M
        return m_args;
5336
1.35M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, float>::args()
Line
Count
Source
5334
145k
    {
5335
145k
        return m_args;
5336
145k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long double>::args()
Line
Count
Source
5334
145k
    {
5335
145k
        return m_args;
5336
145k
    }
5337
5338
    argptrs_type& arg_pointers()
5339
54.2M
    {
5340
54.2M
        return m_argptrs;
5341
54.2M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, char>::arg_pointers()
Line
Count
Source
5339
14.6k
    {
5340
14.6k
        return m_argptrs;
5341
14.6k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, int>::arg_pointers()
Line
Count
Source
5339
802k
    {
5340
802k
        return m_argptrs;
5341
802k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned int>::arg_pointers()
Line
Count
Source
5339
695k
    {
5340
695k
        return m_argptrs;
5341
695k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, double>::arg_pointers()
Line
Count
Source
5339
1.35M
    {
5340
1.35M
        return m_argptrs;
5341
1.35M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, bool>::arg_pointers()
Line
Count
Source
5339
14.6k
    {
5340
14.6k
        return m_argptrs;
5341
14.6k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, void*>::arg_pointers()
Line
Count
Source
5339
14.6k
    {
5340
14.6k
        return m_argptrs;
5341
14.6k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::arg_pointers()
Line
Count
Source
5339
271k
    {
5340
271k
        return m_argptrs;
5341
271k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::arg_pointers()
Line
Count
Source
5339
14.6k
    {
5340
14.6k
        return m_argptrs;
5341
14.6k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::arg_pointers()
Line
Count
Source
5339
142k
    {
5340
142k
        return m_argptrs;
5341
142k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, wchar_t>::arg_pointers()
Line
Count
Source
5339
29.3k
    {
5340
29.3k
        return m_argptrs;
5341
29.3k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, int>::arg_pointers()
Line
Count
Source
5339
186k
    {
5340
186k
        return m_argptrs;
5341
186k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned int>::arg_pointers()
Line
Count
Source
5339
186k
    {
5340
186k
        return m_argptrs;
5341
186k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, double>::arg_pointers()
Line
Count
Source
5339
175k
    {
5340
175k
        return m_argptrs;
5341
175k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, bool>::arg_pointers()
Line
Count
Source
5339
29.3k
    {
5340
29.3k
        return m_argptrs;
5341
29.3k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, void*>::arg_pointers()
Line
Count
Source
5339
29.3k
    {
5340
29.3k
        return m_argptrs;
5341
29.3k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::arg_pointers()
Line
Count
Source
5339
29.3k
    {
5340
29.3k
        return m_argptrs;
5341
29.3k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::arg_pointers()
Line
Count
Source
5339
29.3M
    {
5340
29.3M
        return m_argptrs;
5341
29.3M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::arg_pointers()
Line
Count
Source
5339
14.6M
    {
5340
14.6M
        return m_argptrs;
5341
14.6M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, signed char>::arg_pointers()
Line
Count
Source
5339
624k
    {
5340
624k
        return m_argptrs;
5341
624k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned char>::arg_pointers()
Line
Count
Source
5339
603k
    {
5340
603k
        return m_argptrs;
5341
603k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long long>::arg_pointers()
Line
Count
Source
5339
801k
    {
5340
801k
        return m_argptrs;
5341
801k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned long long>::arg_pointers()
Line
Count
Source
5339
688k
    {
5340
688k
        return m_argptrs;
5341
688k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, signed char>::arg_pointers()
Line
Count
Source
5339
156k
    {
5340
156k
        return m_argptrs;
5341
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned char>::arg_pointers()
Line
Count
Source
5339
156k
    {
5340
156k
        return m_argptrs;
5341
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long long>::arg_pointers()
Line
Count
Source
5339
157k
    {
5340
157k
        return m_argptrs;
5341
157k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned long long>::arg_pointers()
Line
Count
Source
5339
156k
    {
5340
156k
        return m_argptrs;
5341
156k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, float>::arg_pointers()
Line
Count
Source
5339
1.23M
    {
5340
1.23M
        return m_argptrs;
5341
1.23M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long double>::arg_pointers()
Line
Count
Source
5339
1.35M
    {
5340
1.35M
        return m_argptrs;
5341
1.35M
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, float>::arg_pointers()
Line
Count
Source
5339
145k
    {
5340
145k
        return m_argptrs;
5341
145k
    }
scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long double>::arg_pointers()
Line
Count
Source
5339
145k
    {
5340
145k
        return m_argptrs;
5341
145k
    }
5342
5343
private:
5344
    std::tuple<Args...> m_args;
5345
    argptrs_type m_argptrs;
5346
};
5347
5348
}  // namespace detail
5349
5350
/**
5351
 * Constructs a `scan_arg_store` object, associated with `Context`,
5352
 * that contains value-initialized values of types `Args...`.
5353
 */
5354
template <typename Context = scan_context, typename... Args>
5355
constexpr auto make_scan_args()
5356
54.2M
{
5357
54.2M
    detail::check_scan_arg_types<Args...>();
5358
54.2M
    return detail::scan_arg_store<Context, Args...>{};
5359
54.2M
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, char>()
Line
Count
Source
5356
14.6k
{
5357
14.6k
    detail::check_scan_arg_types<Args...>();
5358
14.6k
    return detail::scan_arg_store<Context, Args...>{};
5359
14.6k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, int>()
Line
Count
Source
5356
802k
{
5357
802k
    detail::check_scan_arg_types<Args...>();
5358
802k
    return detail::scan_arg_store<Context, Args...>{};
5359
802k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, unsigned int>()
Line
Count
Source
5356
695k
{
5357
695k
    detail::check_scan_arg_types<Args...>();
5358
695k
    return detail::scan_arg_store<Context, Args...>{};
5359
695k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, double>()
Line
Count
Source
5356
1.35M
{
5357
1.35M
    detail::check_scan_arg_types<Args...>();
5358
1.35M
    return detail::scan_arg_store<Context, Args...>{};
5359
1.35M
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, bool>()
Line
Count
Source
5356
14.6k
{
5357
14.6k
    detail::check_scan_arg_types<Args...>();
5358
14.6k
    return detail::scan_arg_store<Context, Args...>{};
5359
14.6k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, void*>()
Line
Count
Source
5356
14.6k
{
5357
14.6k
    detail::check_scan_arg_types<Args...>();
5358
14.6k
    return detail::scan_arg_store<Context, Args...>{};
5359
14.6k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
5356
271k
{
5357
271k
    detail::check_scan_arg_types<Args...>();
5358
271k
    return detail::scan_arg_store<Context, Args...>{};
5359
271k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
5356
14.6k
{
5357
14.6k
    detail::check_scan_arg_types<Args...>();
5358
14.6k
    return detail::scan_arg_store<Context, Args...>{};
5359
14.6k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Line
Count
Source
5356
142k
{
5357
142k
    detail::check_scan_arg_types<Args...>();
5358
142k
    return detail::scan_arg_store<Context, Args...>{};
5359
142k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, wchar_t>()
Line
Count
Source
5356
29.3k
{
5357
29.3k
    detail::check_scan_arg_types<Args...>();
5358
29.3k
    return detail::scan_arg_store<Context, Args...>{};
5359
29.3k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, int>()
Line
Count
Source
5356
186k
{
5357
186k
    detail::check_scan_arg_types<Args...>();
5358
186k
    return detail::scan_arg_store<Context, Args...>{};
5359
186k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, unsigned int>()
Line
Count
Source
5356
186k
{
5357
186k
    detail::check_scan_arg_types<Args...>();
5358
186k
    return detail::scan_arg_store<Context, Args...>{};
5359
186k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, double>()
Line
Count
Source
5356
175k
{
5357
175k
    detail::check_scan_arg_types<Args...>();
5358
175k
    return detail::scan_arg_store<Context, Args...>{};
5359
175k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, bool>()
Line
Count
Source
5356
29.3k
{
5357
29.3k
    detail::check_scan_arg_types<Args...>();
5358
29.3k
    return detail::scan_arg_store<Context, Args...>{};
5359
29.3k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, void*>()
Line
Count
Source
5356
29.3k
{
5357
29.3k
    detail::check_scan_arg_types<Args...>();
5358
29.3k
    return detail::scan_arg_store<Context, Args...>{};
5359
29.3k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
5356
29.3k
{
5357
29.3k
    detail::check_scan_arg_types<Args...>();
5358
29.3k
    return detail::scan_arg_store<Context, Args...>{};
5359
29.3k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
5356
29.3M
{
5357
29.3M
    detail::check_scan_arg_types<Args...>();
5358
29.3M
    return detail::scan_arg_store<Context, Args...>{};
5359
29.3M
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Line
Count
Source
5356
14.6M
{
5357
14.6M
    detail::check_scan_arg_types<Args...>();
5358
14.6M
    return detail::scan_arg_store<Context, Args...>{};
5359
14.6M
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, signed char>()
Line
Count
Source
5356
624k
{
5357
624k
    detail::check_scan_arg_types<Args...>();
5358
624k
    return detail::scan_arg_store<Context, Args...>{};
5359
624k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, unsigned char>()
Line
Count
Source
5356
603k
{
5357
603k
    detail::check_scan_arg_types<Args...>();
5358
603k
    return detail::scan_arg_store<Context, Args...>{};
5359
603k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, long long>()
Line
Count
Source
5356
801k
{
5357
801k
    detail::check_scan_arg_types<Args...>();
5358
801k
    return detail::scan_arg_store<Context, Args...>{};
5359
801k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, unsigned long long>()
Line
Count
Source
5356
688k
{
5357
688k
    detail::check_scan_arg_types<Args...>();
5358
688k
    return detail::scan_arg_store<Context, Args...>{};
5359
688k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, signed char>()
Line
Count
Source
5356
156k
{
5357
156k
    detail::check_scan_arg_types<Args...>();
5358
156k
    return detail::scan_arg_store<Context, Args...>{};
5359
156k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, unsigned char>()
Line
Count
Source
5356
156k
{
5357
156k
    detail::check_scan_arg_types<Args...>();
5358
156k
    return detail::scan_arg_store<Context, Args...>{};
5359
156k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, long long>()
Line
Count
Source
5356
157k
{
5357
157k
    detail::check_scan_arg_types<Args...>();
5358
157k
    return detail::scan_arg_store<Context, Args...>{};
5359
157k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, unsigned long long>()
Line
Count
Source
5356
156k
{
5357
156k
    detail::check_scan_arg_types<Args...>();
5358
156k
    return detail::scan_arg_store<Context, Args...>{};
5359
156k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, float>()
Line
Count
Source
5356
1.23M
{
5357
1.23M
    detail::check_scan_arg_types<Args...>();
5358
1.23M
    return detail::scan_arg_store<Context, Args...>{};
5359
1.23M
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<char>, long double>()
Line
Count
Source
5356
1.35M
{
5357
1.35M
    detail::check_scan_arg_types<Args...>();
5358
1.35M
    return detail::scan_arg_store<Context, Args...>{};
5359
1.35M
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, float>()
Line
Count
Source
5356
145k
{
5357
145k
    detail::check_scan_arg_types<Args...>();
5358
145k
    return detail::scan_arg_store<Context, Args...>{};
5359
145k
}
auto scn::v3::make_scan_args<scn::v3::basic_scan_context<wchar_t>, long double>()
Line
Count
Source
5356
145k
{
5357
145k
    detail::check_scan_arg_types<Args...>();
5358
145k
    return detail::scan_arg_store<Context, Args...>{};
5359
145k
}
5360
/**
5361
 * Constructs a `scan_arg_store` object, associated with `Context`,
5362
 * that contains `values`.
5363
 */
5364
template <typename Context = scan_context, typename... Args>
5365
constexpr auto make_scan_args(std::tuple<Args...>&& values)
5366
{
5367
    detail::check_scan_arg_types<Args...>();
5368
    return detail::scan_arg_store<Context, Args...>{SCN_MOVE(values)};
5369
}
5370
5371
/**
5372
 * A view over a collection of scanning arguments (`scan_arg_store`).
5373
 *
5374
 * Passed to `scn::vscan`, where it's automatically constructed from a
5375
 * `scan_arg_store`.
5376
 */
5377
template <typename Context>
5378
class basic_scan_args {
5379
public:
5380
11.9M
    constexpr basic_scan_args() = default;
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args()
Line
Count
Source
5380
840k
    constexpr basic_scan_args() = default;
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args()
Line
Count
Source
5380
11.0M
    constexpr basic_scan_args() = default;
5381
5382
    template <typename... Args>
5383
    SCN_IMPLICIT constexpr basic_scan_args(
5384
        detail::scan_arg_store<Context, Args...>& store)
5385
        : basic_scan_args(store.desc, store.arg_pointers().data())
5386
54.2M
    {
5387
54.2M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<char>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, char>&)
Line
Count
Source
5386
14.6k
    {
5387
14.6k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<int>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, int>&)
Line
Count
Source
5386
802k
    {
5387
802k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<unsigned int>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned int>&)
Line
Count
Source
5386
695k
    {
5387
695k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<double>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, double>&)
Line
Count
Source
5386
1.35M
    {
5387
1.35M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<bool>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, bool>&)
Line
Count
Source
5386
14.6k
    {
5387
14.6k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<void*>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, void*>&)
Line
Count
Source
5386
14.6k
    {
5387
14.6k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
5386
271k
    {
5387
271k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&)
Line
Count
Source
5386
14.6k
    {
5387
14.6k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&)
Line
Count
Source
5386
142k
    {
5387
142k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<wchar_t>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, wchar_t>&)
Line
Count
Source
5386
29.3k
    {
5387
29.3k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<int>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, int>&)
Line
Count
Source
5386
186k
    {
5387
186k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<unsigned int>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned int>&)
Line
Count
Source
5386
186k
    {
5387
186k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<double>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, double>&)
Line
Count
Source
5386
175k
    {
5387
175k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<bool>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, bool>&)
Line
Count
Source
5386
29.3k
    {
5387
29.3k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<void*>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, void*>&)
Line
Count
Source
5386
29.3k
    {
5387
29.3k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
5386
29.3k
    {
5387
29.3k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&)
Line
Count
Source
5386
29.3M
    {
5387
29.3M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&)
Line
Count
Source
5386
14.6M
    {
5387
14.6M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<signed char>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, signed char>&)
Line
Count
Source
5386
624k
    {
5387
624k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<unsigned char>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned char>&)
Line
Count
Source
5386
603k
    {
5387
603k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<long long>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long long>&)
Line
Count
Source
5386
801k
    {
5387
801k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<unsigned long long>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, unsigned long long>&)
Line
Count
Source
5386
688k
    {
5387
688k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<signed char>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, signed char>&)
Line
Count
Source
5386
156k
    {
5387
156k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<unsigned char>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned char>&)
Line
Count
Source
5386
156k
    {
5387
156k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<long long>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long long>&)
Line
Count
Source
5386
157k
    {
5387
157k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<unsigned long long>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, unsigned long long>&)
Line
Count
Source
5386
156k
    {
5387
156k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<float>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, float>&)
Line
Count
Source
5386
1.23M
    {
5387
1.23M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args<long double>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<char>, long double>&)
Line
Count
Source
5386
1.35M
    {
5387
1.35M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<float>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, float>&)
Line
Count
Source
5386
145k
    {
5387
145k
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args<long double>(scn::v3::detail::scan_arg_store<scn::v3::basic_scan_context<wchar_t>, long double>&)
Line
Count
Source
5386
145k
    {
5387
145k
    }
5388
5389
    /**
5390
     * \return `basic_scan_arg` at index `id`. Empty `basic_scan_arg` if
5391
     * there's no argument at index `id`.
5392
     */
5393
    SCN_NODISCARD constexpr basic_scan_arg<Context> get(std::size_t id) const
5394
53.9M
    {
5395
53.9M
        if (SCN_UNLIKELY(!is_packed())) {
5396
0
            if (SCN_LIKELY(id < max_size())) {
5397
0
                return m_args[id];
5398
0
            }
5399
0
            return {};
5400
0
        }
5401
5402
53.9M
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
5403
144
            return {};
5404
144
        }
5405
5406
53.9M
        const auto t = type(id);
5407
53.9M
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
5408
3.68k
            return {};
5409
3.68k
        }
5410
5411
53.9M
        basic_scan_arg<Context> arg;
5412
53.9M
        arg.m_type = t;
5413
53.9M
        if (is_only_builtin()) {
5414
53.9M
            arg.m_value.ref_value = m_builtin_values[id];
5415
53.9M
        }
5416
0
        else {
5417
0
            arg.m_value = m_values[id];
5418
0
        }
5419
53.9M
        return arg;
5420
53.9M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::get(unsigned long) const
Line
Count
Source
5394
8.61M
    {
5395
8.61M
        if (SCN_UNLIKELY(!is_packed())) {
5396
0
            if (SCN_LIKELY(id < max_size())) {
5397
0
                return m_args[id];
5398
0
            }
5399
0
            return {};
5400
0
        }
5401
5402
8.61M
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
5403
108
            return {};
5404
108
        }
5405
5406
8.61M
        const auto t = type(id);
5407
8.61M
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
5408
2.81k
            return {};
5409
2.81k
        }
5410
5411
8.61M
        basic_scan_arg<Context> arg;
5412
8.61M
        arg.m_type = t;
5413
8.61M
        if (is_only_builtin()) {
5414
8.61M
            arg.m_value.ref_value = m_builtin_values[id];
5415
8.61M
        }
5416
0
        else {
5417
0
            arg.m_value = m_values[id];
5418
0
        }
5419
8.61M
        return arg;
5420
8.61M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::get(unsigned long) const
Line
Count
Source
5394
45.3M
    {
5395
45.3M
        if (SCN_UNLIKELY(!is_packed())) {
5396
0
            if (SCN_LIKELY(id < max_size())) {
5397
0
                return m_args[id];
5398
0
            }
5399
0
            return {};
5400
0
        }
5401
5402
45.3M
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
5403
36
            return {};
5404
36
        }
5405
5406
45.3M
        const auto t = type(id);
5407
45.3M
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
5408
866
            return {};
5409
866
        }
5410
5411
45.3M
        basic_scan_arg<Context> arg;
5412
45.3M
        arg.m_type = t;
5413
45.3M
        if (is_only_builtin()) {
5414
45.3M
            arg.m_value.ref_value = m_builtin_values[id];
5415
45.3M
        }
5416
0
        else {
5417
0
            arg.m_value = m_values[id];
5418
0
        }
5419
45.3M
        return arg;
5420
45.3M
    }
5421
5422
    /**
5423
     * \return Number of arguments in `*this`.
5424
     */
5425
    SCN_NODISCARD constexpr std::size_t size() const
5426
54.2M
    {
5427
54.2M
        if (SCN_UNLIKELY(!is_packed())) {
5428
0
            return max_size();
5429
0
        }
5430
5431
54.2M
        return static_cast<std::size_t>(m_desc &
5432
54.2M
                                        ((1 << detail::packed_arg_bits) - 1));
5433
54.2M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::size() const
Line
Count
Source
5426
8.63M
    {
5427
8.63M
        if (SCN_UNLIKELY(!is_packed())) {
5428
0
            return max_size();
5429
0
        }
5430
5431
8.63M
        return static_cast<std::size_t>(m_desc &
5432
8.63M
                                        ((1 << detail::packed_arg_bits) - 1));
5433
8.63M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::size() const
Line
Count
Source
5426
45.6M
    {
5427
45.6M
        if (SCN_UNLIKELY(!is_packed())) {
5428
0
            return max_size();
5429
0
        }
5430
5431
45.6M
        return static_cast<std::size_t>(m_desc &
5432
45.6M
                                        ((1 << detail::packed_arg_bits) - 1));
5433
45.6M
    }
5434
5435
private:
5436
    constexpr explicit basic_scan_args(size_t desc, void** data)
5437
        : m_desc(desc), m_builtin_values(data)
5438
54.2M
    {
5439
54.2M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::basic_scan_args(unsigned long, void**)
Line
Count
Source
5438
8.63M
    {
5439
8.63M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::basic_scan_args(unsigned long, void**)
Line
Count
Source
5438
45.6M
    {
5439
45.6M
    }
5440
    constexpr explicit basic_scan_args(size_t desc, detail::arg_value* data)
5441
        : m_desc(desc), m_values(data)
5442
    {
5443
    }
5444
    constexpr explicit basic_scan_args(size_t desc,
5445
                                       basic_scan_arg<Context>* data)
5446
        : m_desc(desc), m_args(data)
5447
    {
5448
    }
5449
5450
    SCN_NODISCARD constexpr bool is_packed() const
5451
108M
    {
5452
108M
        return (m_desc & detail::is_unpacked_bit) == 0;
5453
108M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::is_packed() const
Line
Count
Source
5451
17.2M
    {
5452
17.2M
        return (m_desc & detail::is_unpacked_bit) == 0;
5453
17.2M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::is_packed() const
Line
Count
Source
5451
90.9M
    {
5452
90.9M
        return (m_desc & detail::is_unpacked_bit) == 0;
5453
90.9M
    }
5454
    SCN_NODISCARD constexpr bool is_only_builtin() const
5455
53.9M
    {
5456
53.9M
        return (m_desc & detail::has_custom_types_bit) == 0;
5457
53.9M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::is_only_builtin() const
Line
Count
Source
5455
8.61M
    {
5456
8.61M
        return (m_desc & detail::has_custom_types_bit) == 0;
5457
8.61M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::is_only_builtin() const
Line
Count
Source
5455
45.3M
    {
5456
45.3M
        return (m_desc & detail::has_custom_types_bit) == 0;
5457
45.3M
    }
5458
5459
    SCN_NODISCARD constexpr detail::arg_type type(std::size_t index) const
5460
53.9M
    {
5461
        // First (0th) index is size, types start after that
5462
53.9M
        const auto shift = (index + 1) * detail::packed_arg_bits;
5463
53.9M
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
5464
53.9M
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
5465
53.9M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::type(unsigned long) const
Line
Count
Source
5460
8.61M
    {
5461
        // First (0th) index is size, types start after that
5462
8.61M
        const auto shift = (index + 1) * detail::packed_arg_bits;
5463
8.61M
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
5464
8.61M
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
5465
8.61M
    }
scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::type(unsigned long) const
Line
Count
Source
5460
45.3M
    {
5461
        // First (0th) index is size, types start after that
5462
45.3M
        const auto shift = (index + 1) * detail::packed_arg_bits;
5463
45.3M
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
5464
45.3M
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
5465
45.3M
    }
5466
5467
    SCN_NODISCARD constexpr std::size_t max_size() const
5468
0
    {
5469
0
        return SCN_LIKELY(is_packed()) ? detail::max_packed_args
5470
0
                                       : (m_desc & ~detail::is_unpacked_bit &
5471
0
                                          ~detail::has_custom_types_bit);
5472
0
    }
Unexecuted instantiation: scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >::max_size() const
Unexecuted instantiation: scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >::max_size() const
5473
5474
    size_t m_desc{0};
5475
    union {
5476
        void** m_builtin_values;
5477
        detail::arg_value* m_values;
5478
        basic_scan_arg<Context>* m_args{nullptr};
5479
    };
5480
};
5481
5482
/////////////////////////////////////////////////////////////////
5483
// scan_parse_context
5484
/////////////////////////////////////////////////////////////////
5485
5486
/**
5487
 * Format string parsing context, wrapping the format string being parsed,
5488
 * and a counter for argument indexing.
5489
 *
5490
 * \ingroup ctx
5491
 */
5492
template <typename CharT>
5493
class basic_scan_parse_context {
5494
public:
5495
    using char_type = CharT;
5496
    using iterator = typename std::basic_string_view<CharT>::const_pointer;
5497
5498
    /**
5499
     * Construct a `basic_scan_parse_context` over a format string `format`.
5500
     */
5501
    explicit constexpr basic_scan_parse_context(
5502
        std::basic_string_view<CharT> format,
5503
        int next_arg_id = 0)
5504
        : m_format{format}, m_next_arg_id{next_arg_id}
5505
30.4M
    {
5506
30.4M
    }
scn::v3::basic_scan_parse_context<char>::basic_scan_parse_context(std::__1::basic_string_view<char, std::__1::char_traits<char> >, int)
Line
Count
Source
5505
6.95M
    {
5506
6.95M
    }
scn::v3::basic_scan_parse_context<wchar_t>::basic_scan_parse_context(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, int)
Line
Count
Source
5505
23.4M
    {
5506
23.4M
    }
5507
5508
    /// Returns an iterator pointing to the beginning of the format string
5509
    constexpr auto begin() const noexcept
5510
59.8M
    {
5511
59.8M
        return m_format.data();
5512
59.8M
    }
scn::v3::basic_scan_parse_context<char>::begin() const
Line
Count
Source
5510
13.6M
    {
5511
13.6M
        return m_format.data();
5512
13.6M
    }
scn::v3::basic_scan_parse_context<wchar_t>::begin() const
Line
Count
Source
5510
46.1M
    {
5511
46.1M
        return m_format.data();
5512
46.1M
    }
5513
    /// Returns an iterator pointing to the end of the format string
5514
    constexpr auto end() const noexcept
5515
    {
5516
        return m_format.data() + m_format.size();
5517
    }
5518
5519
    /// Advance the beginning of the format string to `it`
5520
    constexpr void advance_to(iterator it)
5521
29.6M
    {
5522
29.6M
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
5523
29.6M
    }
scn::v3::basic_scan_parse_context<char>::advance_to(char const*)
Line
Count
Source
5521
6.76M
    {
5522
6.76M
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
5523
6.76M
    }
scn::v3::basic_scan_parse_context<wchar_t>::advance_to(wchar_t const*)
Line
Count
Source
5521
22.9M
    {
5522
22.9M
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
5523
22.9M
    }
5524
5525
    constexpr size_t next_arg_id()
5526
30.1M
    {
5527
30.1M
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
5528
62
            on_error(
5529
62
                "Cannot switch from manual to automatic argument indexing");
5530
62
            return 0;
5531
62
        }
5532
5533
30.1M
        auto id = static_cast<size_t>(m_next_arg_id++);
5534
30.1M
        do_check_arg_id(id);
5535
30.1M
        return id;
5536
30.1M
    }
scn::v3::basic_scan_parse_context<char>::next_arg_id()
Line
Count
Source
5526
6.93M
    {
5527
6.93M
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
5528
62
            on_error(
5529
62
                "Cannot switch from manual to automatic argument indexing");
5530
62
            return 0;
5531
62
        }
5532
5533
6.93M
        auto id = static_cast<size_t>(m_next_arg_id++);
5534
6.93M
        do_check_arg_id(id);
5535
6.93M
        return id;
5536
6.93M
    }
scn::v3::basic_scan_parse_context<wchar_t>::next_arg_id()
Line
Count
Source
5526
23.2M
    {
5527
23.2M
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
5528
0
            on_error(
5529
0
                "Cannot switch from manual to automatic argument indexing");
5530
0
            return 0;
5531
0
        }
5532
5533
23.2M
        auto id = static_cast<size_t>(m_next_arg_id++);
5534
23.2M
        do_check_arg_id(id);
5535
23.2M
        return id;
5536
23.2M
    }
5537
5538
    constexpr void check_arg_id(std::size_t id)
5539
5.95k
    {
5540
5.95k
        if (SCN_UNLIKELY(m_next_arg_id > 0)) {
5541
142
            on_error(
5542
142
                "Cannot switch from manual to automatic argument indexing");
5543
142
            return;
5544
142
        }
5545
5.81k
        m_next_arg_id = -1;
5546
5.81k
        do_check_arg_id(id);
5547
5.81k
    }
scn::v3::basic_scan_parse_context<char>::check_arg_id(unsigned long)
Line
Count
Source
5539
5.74k
    {
5540
5.74k
        if (SCN_UNLIKELY(m_next_arg_id > 0)) {
5541
124
            on_error(
5542
124
                "Cannot switch from manual to automatic argument indexing");
5543
124
            return;
5544
124
        }
5545
5.61k
        m_next_arg_id = -1;
5546
5.61k
        do_check_arg_id(id);
5547
5.61k
    }
scn::v3::basic_scan_parse_context<wchar_t>::check_arg_id(unsigned long)
Line
Count
Source
5539
216
    {
5540
216
        if (SCN_UNLIKELY(m_next_arg_id > 0)) {
5541
18
            on_error(
5542
18
                "Cannot switch from manual to automatic argument indexing");
5543
18
            return;
5544
18
        }
5545
198
        m_next_arg_id = -1;
5546
198
        do_check_arg_id(id);
5547
198
    }
5548
5549
    constexpr scan_error on_error(const char* msg) const
5550
204
    {
5551
204
        return detail::handle_error(
5552
204
            scan_error{scan_error::invalid_format_string, msg});
5553
204
    }
scn::v3::basic_scan_parse_context<char>::on_error(char const*) const
Line
Count
Source
5550
186
    {
5551
186
        return detail::handle_error(
5552
186
            scan_error{scan_error::invalid_format_string, msg});
5553
186
    }
scn::v3::basic_scan_parse_context<wchar_t>::on_error(char const*) const
Line
Count
Source
5550
18
    {
5551
18
        return detail::handle_error(
5552
18
            scan_error{scan_error::invalid_format_string, msg});
5553
18
    }
5554
5555
protected:
5556
    constexpr void do_check_arg_id(size_t id);
5557
5558
    std::basic_string_view<CharT> m_format;
5559
    int m_next_arg_id{0};
5560
};
5561
5562
/////////////////////////////////////////////////////////////////
5563
// Result types
5564
/////////////////////////////////////////////////////////////////
5565
5566
namespace detail {
5567
template <typename... Args>
5568
struct scan_result_value_storage {
5569
public:
5570
    using tuple_type = std::tuple<Args...>;
5571
5572
    constexpr scan_result_value_storage() = default;
5573
5574
    constexpr scan_result_value_storage(tuple_type&& values)
5575
        : m_values(SCN_MOVE(values))
5576
63.5M
    {
5577
63.5M
    }
scn::v3::detail::scan_result_value_storage<char>::scan_result_value_storage(std::__1::tuple<char>&&)
Line
Count
Source
5576
204
    {
5577
204
    }
scn::v3::detail::scan_result_value_storage<int>::scan_result_value_storage(std::__1::tuple<int>&&)
Line
Count
Source
5576
767k
    {
5577
767k
    }
scn::v3::detail::scan_result_value_storage<unsigned int>::scan_result_value_storage(std::__1::tuple<unsigned int>&&)
Line
Count
Source
5576
652k
    {
5577
652k
    }
scn::v3::detail::scan_result_value_storage<double>::scan_result_value_storage(std::__1::tuple<double>&&)
Line
Count
Source
5576
1.42M
    {
5577
1.42M
    }
Unexecuted instantiation: scn::v3::detail::scan_result_value_storage<bool>::scan_result_value_storage(std::__1::tuple<bool>&&)
Unexecuted instantiation: scn::v3::detail::scan_result_value_storage<void*>::scan_result_value_storage(std::__1::tuple<void*>&&)
scn::v3::detail::scan_result_value_storage<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result_value_storage(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5576
299k
    {
5577
299k
    }
scn::v3::detail::scan_result_value_storage<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result_value_storage(std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5576
36.5M
    {
5577
36.5M
    }
scn::v3::detail::scan_result_value_storage<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_result_value_storage(std::__1::tuple<std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Line
Count
Source
5576
149k
    {
5577
149k
    }
scn::v3::detail::scan_result_value_storage<wchar_t>::scan_result_value_storage(std::__1::tuple<wchar_t>&&)
Line
Count
Source
5576
12
    {
5577
12
    }
scn::v3::detail::scan_result_value_storage<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_result_value_storage(std::__1::tuple<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Line
Count
Source
5576
18.2M
    {
5577
18.2M
    }
scn::v3::detail::scan_result_value_storage<signed char>::scan_result_value_storage(std::__1::tuple<signed char>&&)
Line
Count
Source
5576
596k
    {
5577
596k
    }
scn::v3::detail::scan_result_value_storage<unsigned char>::scan_result_value_storage(std::__1::tuple<unsigned char>&&)
Line
Count
Source
5576
569k
    {
5577
569k
    }
scn::v3::detail::scan_result_value_storage<long long>::scan_result_value_storage(std::__1::tuple<long long>&&)
Line
Count
Source
5576
783k
    {
5577
783k
    }
scn::v3::detail::scan_result_value_storage<unsigned long long>::scan_result_value_storage(std::__1::tuple<unsigned long long>&&)
Line
Count
Source
5576
660k
    {
5577
660k
    }
scn::v3::detail::scan_result_value_storage<float>::scan_result_value_storage(std::__1::tuple<float>&&)
Line
Count
Source
5576
1.31M
    {
5577
1.31M
    }
scn::v3::detail::scan_result_value_storage<long double>::scan_result_value_storage(std::__1::tuple<long double>&&)
Line
Count
Source
5576
1.44M
    {
5577
1.44M
    }
5578
5579
    /// Access the scanned values
5580
    tuple_type& values() &
5581
    {
5582
        return m_values;
5583
    }
5584
    /// Access the scanned values
5585
    const tuple_type& values() const&
5586
    {
5587
        return m_values;
5588
    }
5589
    /// Access the scanned values
5590
    tuple_type&& values() &&
5591
    {
5592
        return SCN_MOVE(m_values);
5593
    }
5594
    /// Access the scanned values
5595
    const tuple_type&& values() const&&
5596
    {
5597
        return SCN_MOVE(m_values);
5598
    }
5599
5600
    /// Access the single scanned value
5601
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
5602
    decltype(auto) value() &
5603
    {
5604
        return std::get<0>(m_values);
5605
    }
5606
    /// Access the single scanned value
5607
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
5608
    decltype(auto) value() const&
5609
    {
5610
        return std::get<0>(m_values);
5611
    }
5612
    /// Access the single scanned value
5613
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
5614
    decltype(auto) value() &&
5615
    {
5616
        return SCN_MOVE(std::get<0>(m_values));
5617
    }
5618
    /// Access the single scanned value
5619
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
5620
    decltype(auto) value() const&&
5621
    {
5622
        return SCN_MOVE(std::get<0>(m_values));
5623
    }
5624
5625
private:
5626
    SCN_NO_UNIQUE_ADDRESS tuple_type m_values{};
5627
};
5628
5629
struct scan_result_convert_tag {};
5630
5631
template <typename Range>
5632
struct scan_result_range_storage {
5633
public:
5634
    using range_type = Range;
5635
    using iterator = ranges::iterator_t<Range>;
5636
    using sentinel = ranges::sentinel_t<Range>;
5637
5638
    constexpr scan_result_range_storage() = default;
5639
5640
    constexpr scan_result_range_storage(range_type&& r) : m_range(SCN_MOVE(r))
5641
63.5M
    {
5642
63.5M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::scan_result_range_storage(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
5641
4.39M
    {
5642
4.39M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::scan_result_range_storage(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
5641
36.6M
    {
5642
36.6M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::scan_result_range_storage(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&&)
Line
Count
Source
5641
4.21M
    {
5642
4.21M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::scan_result_range_storage(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&&)
Line
Count
Source
5641
18.3M
    {
5642
18.3M
    }
5643
5644
    template <typename R>
5645
    explicit constexpr scan_result_range_storage(scan_result_convert_tag, R&& r)
5646
        : m_range(SCN_MOVE(r))
5647
    {
5648
    }
5649
5650
    /// Access the ununsed source range
5651
    range_type range() const
5652
    {
5653
        return m_range;
5654
    }
5655
5656
    /// The beginning of the unused source range
5657
    auto begin() const
5658
63.5M
    {
5659
63.5M
        return ranges::begin(m_range);
5660
63.5M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::begin() const
Line
Count
Source
5658
4.39M
    {
5659
4.39M
        return ranges::begin(m_range);
5660
4.39M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::begin() const
Line
Count
Source
5658
4.21M
    {
5659
4.21M
        return ranges::begin(m_range);
5660
4.21M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::begin() const
Line
Count
Source
5658
36.6M
    {
5659
36.6M
        return ranges::begin(m_range);
5660
36.6M
    }
scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::begin() const
Line
Count
Source
5658
18.3M
    {
5659
18.3M
        return ranges::begin(m_range);
5660
18.3M
    }
5661
    /// The end of the unused source range
5662
    auto end() const
5663
0
    {
5664
0
        return ranges::end(m_range);
5665
0
    }
Unexecuted instantiation: scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >::end() const
Unexecuted instantiation: scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::end() const
Unexecuted instantiation: scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::end() const
Unexecuted instantiation: scn::v3::detail::scan_result_range_storage<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::end() const
5666
5667
protected:
5668
    template <typename Other>
5669
    void assign_range(Other&& r)
5670
    {
5671
        m_range = r.m_range;
5672
    }
5673
5674
private:
5675
    SCN_NO_UNIQUE_ADDRESS range_type m_range{};
5676
};
5677
5678
struct scan_result_file_storage {
5679
public:
5680
    using range_type = std::FILE*;
5681
5682
    constexpr scan_result_file_storage() = default;
5683
5684
0
    constexpr scan_result_file_storage(std::FILE* f) : m_file(f) {}
5685
5686
    /// File used for scanning
5687
    std::FILE* file() const
5688
0
    {
5689
0
        return m_file;
5690
0
    }
5691
5692
protected:
5693
    void assign_range(const scan_result_file_storage& f)
5694
0
    {
5695
0
        m_file = f.m_file;
5696
0
    }
5697
5698
private:
5699
    std::FILE* m_file{nullptr};
5700
};
5701
5702
struct scan_result_dangling {
5703
    using range_type = ranges::dangling;
5704
5705
    constexpr scan_result_dangling() = default;
5706
5707
    template <typename... Args>
5708
    explicit constexpr scan_result_dangling(Args&&...)
5709
    {
5710
    }
5711
5712
    range_type range() const
5713
0
    {
5714
0
        return {};
5715
0
    }
5716
5717
    ranges::dangling begin() const
5718
0
    {
5719
0
        return {};
5720
0
    }
5721
    ranges::dangling end() const
5722
0
    {
5723
0
        return {};
5724
0
    }
5725
5726
protected:
5727
    template <typename... Args>
5728
    void assign_range(Args&&...)
5729
    {
5730
    }
5731
};
5732
5733
template <typename Range>
5734
constexpr auto get_scan_result_base()
5735
0
{
5736
0
    if constexpr (std::is_same_v<remove_cvref_t<Range>, ranges::dangling>) {
5737
0
        return type_identity<scan_result_dangling>{};
5738
0
    }
5739
0
    else if constexpr (std::is_same_v<remove_cvref_t<Range>, std::FILE*>) {
5740
0
        return type_identity<scan_result_file_storage>{};
5741
0
    }
5742
0
    else {
5743
0
        return type_identity<scan_result_range_storage<Range>>{};
5744
0
    }
5745
0
}
Unexecuted instantiation: auto scn::v3::detail::get_scan_result_base<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >()
Unexecuted instantiation: auto scn::v3::detail::get_scan_result_base<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >()
Unexecuted instantiation: auto scn::v3::detail::get_scan_result_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >()
Unexecuted instantiation: auto scn::v3::detail::get_scan_result_base<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >()
5746
5747
#if !SCN_DOXYGEN
5748
template <typename Range>
5749
using scan_result_base = typename decltype(get_scan_result_base<Range>())::type;
5750
#else
5751
template <typename Range>
5752
using scan_result_base = scan_result_range_storage<Range>;
5753
#endif
5754
}  // namespace detail
5755
5756
/**
5757
 * \defgroup result Result types
5758
 *
5759
 * \brief Result and error types
5760
 *
5761
 * Instead of using exceptions, `scn::scan` and others return an object of
5762
 * type `scn::scan_result`, wrapped inside a `scn::scan_expected`.
5763
 */
5764
5765
/**
5766
 * Type returned by `scan`, contains the unused input as a subrange, and the
5767
 * scanned values in a tuple.
5768
 */
5769
template <typename Range, typename... Args>
5770
class scan_result : public detail::scan_result_base<Range>,
5771
                    public detail::scan_result_value_storage<Args...> {
5772
    using range_base = detail::scan_result_base<Range>;
5773
    using value_base = detail::scan_result_value_storage<Args...>;
5774
5775
public:
5776
    using range_type = typename range_base::range_type;
5777
    using tuple_type = typename value_base::tuple_type;
5778
5779
    constexpr scan_result() = default;
5780
5781
    constexpr scan_result(const scan_result&) = default;
5782
36.8M
    constexpr scan_result(scan_result&&) = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5782
149k
    constexpr scan_result(scan_result&&) = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5782
1.09k
    constexpr scan_result(scan_result&&) = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5782
22
    constexpr scan_result(scan_result&&) = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5782
18.2M
    constexpr scan_result(scan_result&&) = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5782
150k
    constexpr scan_result(scan_result&&) = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5782
18.2M
    constexpr scan_result(scan_result&&) = default;
5783
    constexpr scan_result& operator=(const scan_result&) = default;
5784
    constexpr scan_result& operator=(scan_result&&) = default;
5785
5786
73.7M
    ~scan_result() = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Line
Count
Source
5786
299k
    ~scan_result() = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_result()
Line
Count
Source
5786
2.18k
    ~scan_result() = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Line
Count
Source
5786
44
    ~scan_result() = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_result()
Line
Count
Source
5786
36.5M
    ~scan_result() = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Line
Count
Source
5786
300k
    ~scan_result() = default;
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_result()
Line
Count
Source
5786
36.5M
    ~scan_result() = default;
5787
5788
    scan_result(range_type r, tuple_type&& values)
5789
        : range_base(SCN_MOVE(r)), value_base(SCN_MOVE(values))
5790
63.5M
    {
5791
63.5M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<char>&&)
Line
Count
Source
5790
204
    {
5791
204
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<int>&&)
Line
Count
Source
5790
382k
    {
5791
382k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<unsigned int>&&)
Line
Count
Source
5790
324k
    {
5791
324k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<double>&&)
Line
Count
Source
5790
711k
    {
5791
711k
    }
Unexecuted instantiation: scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<bool>&&)
Unexecuted instantiation: scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<void*>&&)
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5790
149k
    {
5791
149k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5790
1.09k
    {
5791
1.09k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Line
Count
Source
5790
149k
    {
5791
149k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<wchar_t>&&)
Line
Count
Source
5790
12
    {
5791
12
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<int>&&)
Line
Count
Source
5790
711
    {
5791
711
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<unsigned int>&&)
Line
Count
Source
5790
564
    {
5791
564
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<double>&&)
Line
Count
Source
5790
8.43k
    {
5791
8.43k
    }
Unexecuted instantiation: scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<bool>&&)
Unexecuted instantiation: scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<void*>&&)
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5790
22
    {
5791
22
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5790
18.2M
    {
5791
18.2M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Line
Count
Source
5790
18.2M
    {
5791
18.2M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<signed char>&&)
Line
Count
Source
5790
296k
    {
5791
296k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<unsigned char>&&)
Line
Count
Source
5790
283k
    {
5791
283k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<long long>&&)
Line
Count
Source
5790
390k
    {
5791
390k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
5790
328k
    {
5791
328k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<signed char>&&)
Line
Count
Source
5790
298k
    {
5791
298k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<unsigned char>&&)
Line
Count
Source
5790
285k
    {
5791
285k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<int>&&)
Line
Count
Source
5790
383k
    {
5791
383k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<unsigned int>&&)
Line
Count
Source
5790
326k
    {
5791
326k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<long long>&&)
Line
Count
Source
5790
390k
    {
5791
390k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
5790
330k
    {
5791
330k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<signed char>&&)
Line
Count
Source
5790
595
    {
5791
595
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<unsigned char>&&)
Line
Count
Source
5790
500
    {
5791
500
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<long long>&&)
Line
Count
Source
5790
864
    {
5791
864
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
5790
694
    {
5791
694
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<signed char>&&)
Line
Count
Source
5790
595
    {
5791
595
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<unsigned char>&&)
Line
Count
Source
5790
500
    {
5791
500
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<int>&&)
Line
Count
Source
5790
711
    {
5791
711
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<unsigned int>&&)
Line
Count
Source
5790
564
    {
5791
564
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<long long>&&)
Line
Count
Source
5790
864
    {
5791
864
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
5790
694
    {
5791
694
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
5790
150k
    {
5791
150k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
5790
18.2M
    {
5791
18.2M
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<float>&&)
Line
Count
Source
5790
654k
    {
5791
654k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::tuple<long double>&&)
Line
Count
Source
5790
722k
    {
5791
722k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<float>&&)
Line
Count
Source
5790
643k
    {
5791
643k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<double>&&)
Line
Count
Source
5790
700k
    {
5791
700k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::tuple<long double>&&)
Line
Count
Source
5790
709k
    {
5791
709k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<float>&&)
Line
Count
Source
5790
8.36k
    {
5791
8.36k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::tuple<long double>&&)
Line
Count
Source
5790
8.54k
    {
5791
8.54k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<float>&&)
Line
Count
Source
5790
8.33k
    {
5791
8.33k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<double>&&)
Line
Count
Source
5790
8.40k
    {
5791
8.40k
    }
scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>::scan_result(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::tuple<long double>&&)
Line
Count
Source
5790
8.52k
    {
5791
8.52k
    }
5792
5793
    template <typename OtherR,
5794
              std::enable_if_t<std::is_constructible_v<range_type, OtherR>>* =
5795
                  nullptr>
5796
    scan_result(OtherR&& r, tuple_type&& values)
5797
        : range_base(detail::scan_result_convert_tag{}, SCN_FWD(r)),
5798
          value_base(SCN_MOVE(values))
5799
    {
5800
    }
5801
5802
    template <typename OtherR,
5803
              std::enable_if_t<
5804
                  std::is_constructible_v<range_type, OtherR> &&
5805
                  std::is_convertible_v<const OtherR&, range_type>>* = nullptr>
5806
    SCN_IMPLICIT scan_result(const scan_result<OtherR, Args...>& o)
5807
        : range_base(detail::scan_result_convert_tag{}, o.range()),
5808
          value_base(o.values())
5809
    {
5810
    }
5811
    template <typename OtherR,
5812
              std::enable_if_t<
5813
                  std::is_constructible_v<range_type, OtherR> &&
5814
                  !std::is_convertible_v<const OtherR&, range_type>>* = nullptr>
5815
    explicit scan_result(const scan_result<OtherR, Args...>& o)
5816
        : range_base(detail::scan_result_convert_tag{}, o.range()),
5817
          value_base(o.values())
5818
    {
5819
    }
5820
5821
    template <typename OtherR,
5822
              std::enable_if_t<std::is_constructible_v<range_type, OtherR> &&
5823
                               std::is_convertible_v<OtherR&&, range_type>>* =
5824
                  nullptr>
5825
    SCN_IMPLICIT scan_result(scan_result<OtherR, Args...>&& o)
5826
        : range_base(detail::scan_result_convert_tag{}, SCN_MOVE(o.range())),
5827
          value_base(SCN_MOVE(o.values()))
5828
    {
5829
    }
5830
    template <typename OtherR,
5831
              std::enable_if_t<std::is_constructible_v<range_type, OtherR> &&
5832
                               !std::is_convertible_v<OtherR&&, range_type>>* =
5833
                  nullptr>
5834
    explicit scan_result(scan_result<OtherR, Args...>&& o)
5835
        : range_base(detail::scan_result_convert_tag{}, SCN_MOVE(o.range())),
5836
          value_base(SCN_MOVE(o.values()))
5837
    {
5838
    }
5839
5840
    template <typename OtherR,
5841
              typename =
5842
                  std::enable_if_t<std::is_constructible_v<range_type, OtherR>>>
5843
    scan_result& operator=(const scan_result<OtherR, Args...>& o)
5844
    {
5845
        this->assign_range(o);
5846
        this->values() = o.values();
5847
        return *this;
5848
    }
5849
5850
    template <typename OtherR,
5851
              typename =
5852
                  std::enable_if_t<std::is_constructible_v<range_type, OtherR>>>
5853
    scan_result& operator=(scan_result<OtherR, Args...>&& o)
5854
    {
5855
        this->assign_range(o);
5856
        this->values() = SCN_MOVE(o.values());
5857
        return *this;
5858
    }
5859
};
5860
5861
template <typename R, typename... Args>
5862
scan_result(R, std::tuple<Args...>) -> scan_result<R, Args...>;
5863
template <typename R, typename Ctx, typename... Args>
5864
scan_result(R, detail::scan_arg_store<Ctx, Args...>&)
5865
    -> scan_result<R, Args...>;
5866
5867
namespace detail {
5868
template <typename SourceRange>
5869
auto make_vscan_result_range_end(SourceRange& source)
5870
63.5M
{
5871
63.5M
    return ranges::end(source);
5872
63.5M
}
auto scn::v3::detail::make_vscan_result_range_end<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5870
3.48k
{
5871
3.48k
    return ranges::end(source);
5872
3.48k
}
auto scn::v3::detail::make_vscan_result_range_end<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5870
78
{
5871
78
    return ranges::end(source);
5872
78
}
auto scn::v3::detail::make_vscan_result_range_end<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>&)
Line
Count
Source
5870
4.39M
{
5871
4.39M
    return ranges::end(source);
5872
4.39M
}
auto scn::v3::detail::make_vscan_result_range_end<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&)
Line
Count
Source
5870
4.21M
{
5871
4.21M
    return ranges::end(source);
5872
4.21M
}
auto scn::v3::detail::make_vscan_result_range_end<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&)
Line
Count
Source
5870
36.6M
{
5871
36.6M
    return ranges::end(source);
5872
36.6M
}
auto scn::v3::detail::make_vscan_result_range_end<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&)
Line
Count
Source
5870
18.3M
{
5871
18.3M
    return ranges::end(source);
5872
18.3M
}
5873
template <typename CharT, size_t N>
5874
auto make_vscan_result_range_end(CharT (&source)[N])
5875
    -> ranges::sentinel_t<CharT (&)[N]>
5876
{
5877
    return source + N - 1;
5878
}
5879
5880
template <typename SourceRange>
5881
auto make_vscan_result_range(SourceRange&& source, std::ptrdiff_t n)
5882
    -> borrowed_tail_subrange_t<SourceRange>
5883
63.5M
{
5884
63.5M
    if constexpr (ranges::random_access_iterator<
5885
63.5M
                      ranges::iterator_t<SourceRange>>) {
5886
63.5M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
63.5M
    }
5888
63.5M
    else {
5889
63.5M
        auto it = ranges::begin(source);
5890
63.5M
        while (n > 0) {
5891
63.5M
            --n;
5892
63.5M
            ++it;
5893
63.5M
        }
5894
63.5M
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
63.5M
    }
5896
63.5M
}
_ZN3scn2v36detail23make_vscan_result_rangeIRNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISA_EEE4typeEOSA_l
Line
Count
Source
5883
3.48k
{
5884
3.48k
    if constexpr (ranges::random_access_iterator<
5885
3.48k
                      ranges::iterator_t<SourceRange>>) {
5886
3.48k
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
3.48k
    }
5888
3.48k
    else {
5889
3.48k
        auto it = ranges::begin(source);
5890
3.48k
        while (n > 0) {
5891
3.48k
            --n;
5892
3.48k
            ++it;
5893
3.48k
        }
5894
3.48k
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
3.48k
    }
5896
3.48k
}
_ZN3scn2v36detail23make_vscan_result_rangeIRNSt3__117basic_string_viewIwNS3_11char_traitsIwEEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISA_EEE4typeEOSA_l
Line
Count
Source
5883
78
{
5884
78
    if constexpr (ranges::random_access_iterator<
5885
78
                      ranges::iterator_t<SourceRange>>) {
5886
78
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
78
    }
5888
78
    else {
5889
78
        auto it = ranges::begin(source);
5890
78
        while (n > 0) {
5891
78
            --n;
5892
78
            ++it;
5893
78
        }
5894
78
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
78
    }
5896
78
}
_ZN3scn2v36detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISB_EEE4typeEOSB_l
Line
Count
Source
5883
4.39M
{
5884
4.39M
    if constexpr (ranges::random_access_iterator<
5885
4.39M
                      ranges::iterator_t<SourceRange>>) {
5886
4.39M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
4.39M
    }
5888
4.39M
    else {
5889
4.39M
        auto it = ranges::begin(source);
5890
4.39M
        while (n > 0) {
5891
4.39M
            --n;
5892
4.39M
            ++it;
5893
4.39M
        }
5894
4.39M
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
4.39M
    }
5896
4.39M
}
_ZN3scn2v36detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISH_EEE4typeEOSH_l
Line
Count
Source
5883
4.21M
{
5884
4.21M
    if constexpr (ranges::random_access_iterator<
5885
4.21M
                      ranges::iterator_t<SourceRange>>) {
5886
4.21M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
4.21M
    }
5888
4.21M
    else {
5889
4.21M
        auto it = ranges::begin(source);
5890
4.21M
        while (n > 0) {
5891
4.21M
            --n;
5892
4.21M
            ++it;
5893
4.21M
        }
5894
4.21M
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
4.21M
    }
5896
4.21M
}
_ZN3scn2v36detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISB_EEE4typeEOSB_l
Line
Count
Source
5883
36.6M
{
5884
36.6M
    if constexpr (ranges::random_access_iterator<
5885
36.6M
                      ranges::iterator_t<SourceRange>>) {
5886
36.6M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
36.6M
    }
5888
36.6M
    else {
5889
36.6M
        auto it = ranges::begin(source);
5890
36.6M
        while (n > 0) {
5891
36.6M
            --n;
5892
36.6M
            ++it;
5893
36.6M
        }
5894
36.6M
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
36.6M
    }
5896
36.6M
}
_ZN3scn2v36detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISH_EEE4typeEOSH_l
Line
Count
Source
5883
18.3M
{
5884
18.3M
    if constexpr (ranges::random_access_iterator<
5885
18.3M
                      ranges::iterator_t<SourceRange>>) {
5886
18.3M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
5887
18.3M
    }
5888
18.3M
    else {
5889
18.3M
        auto it = ranges::begin(source);
5890
18.3M
        while (n > 0) {
5891
18.3M
            --n;
5892
18.3M
            ++it;
5893
18.3M
        }
5894
18.3M
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
5895
18.3M
    }
5896
18.3M
}
5897
inline auto make_vscan_result_range(std::FILE* source, std::ptrdiff_t)
5898
0
{
5899
0
    return source;
5900
0
}
5901
}  // namespace detail
5902
5903
/////////////////////////////////////////////////////////////////
5904
// Format string parsing
5905
/////////////////////////////////////////////////////////////////
5906
5907
namespace detail {
5908
/// Parse context with extra data used only for compile-time checks
5909
template <typename CharT>
5910
class compile_parse_context : public basic_scan_parse_context<CharT> {
5911
    using base = basic_scan_parse_context<CharT>;
5912
5913
public:
5914
    template <typename Source>
5915
    explicit constexpr compile_parse_context(
5916
        std::basic_string_view<CharT> format_str,
5917
        int num_args,
5918
        const arg_type* types,
5919
        type_identity<Source> source_tag,
5920
        int next_arg_id = 0)
5921
        : base(format_str, next_arg_id),
5922
          m_num_args(num_args),
5923
          m_types(types),
5924
          m_is_contiguous(ranges::range<Source> &&
5925
                          ranges::contiguous_range<Source>),
5926
          m_is_borrowed(
5927
              (ranges::range<Source> && ranges::borrowed_range<Source>) ||
5928
              std::is_same_v<detail::remove_cvref_t<Source>, std::FILE*>)
5929
    {
5930
    }
5931
5932
    SCN_NODISCARD constexpr int get_num_args() const
5933
0
    {
5934
0
        return m_num_args;
5935
0
    }
Unexecuted instantiation: scn::v3::detail::compile_parse_context<char>::get_num_args() const
Unexecuted instantiation: scn::v3::detail::compile_parse_context<wchar_t>::get_num_args() const
5936
    SCN_NODISCARD constexpr arg_type get_arg_type(std::size_t id) const
5937
    {
5938
        return m_types[id];
5939
    }
5940
5941
    SCN_GCC_PUSH
5942
    SCN_GCC_IGNORE("-Wsign-conversion")
5943
5944
    constexpr std::size_t next_arg_id()
5945
    {
5946
        auto id = base::next_arg_id();
5947
        if (SCN_UNLIKELY(id >= static_cast<size_t>(m_num_args))) {
5948
            this->on_error("Argument not found");
5949
        }
5950
        return id;
5951
    }
5952
5953
    constexpr void check_arg_id(std::size_t id)
5954
    {
5955
        base::check_arg_id(id);
5956
        if (SCN_UNLIKELY(id >= static_cast<size_t>(m_num_args))) {
5957
            this->on_error("Argument not found");
5958
        }
5959
    }
5960
    using base::check_arg_id;
5961
5962
    constexpr void check_arg_can_be_read(std::size_t id)
5963
    {
5964
        auto type = get_arg_type(id);
5965
5966
        if ((type == arg_type::narrow_string_view_type ||
5967
             type == arg_type::wide_string_view_type) &&
5968
            !m_is_contiguous) {
5969
            // clang-format off
5970
            this->on_error("Cannot read a string_view from a non-contiguous source");
5971
            // clang-format on
5972
            return;
5973
        }
5974
        if ((type == arg_type::narrow_string_view_type ||
5975
             type == arg_type::wide_string_view_type) &&
5976
            !m_is_borrowed) {
5977
            // clang-format off
5978
            this->on_error("Cannot read a string_view from a non-borrowed source");
5979
            // clang-format on
5980
            return;
5981
        }
5982
5983
        if ((type == arg_type::narrow_regex_matches_type ||
5984
             type == arg_type::wide_regex_matches_type) &&
5985
            !m_is_contiguous) {
5986
            // clang-format off
5987
            this->on_error("Cannot read a regex_matches from a non-contiguous source");
5988
            // clang-format on
5989
            return;
5990
        }
5991
    }
5992
5993
private:
5994
    int m_num_args;
5995
    const arg_type* m_types;
5996
    bool m_is_contiguous, m_is_borrowed;
5997
5998
    SCN_GCC_POP  // -Wsign-conversion
5999
};
6000
6001
constexpr inline bool is_constant_evaluated(bool default_value = false) noexcept
6002
0
{
6003
0
#ifdef __cpp_lib_is_constant_evaluated
6004
0
    SCN_UNUSED(default_value);
6005
0
    return std::is_constant_evaluated();
6006
0
#else
6007
0
    return default_value;
6008
0
#endif
6009
0
}
6010
}  // namespace detail
6011
6012
template <typename CharT>
6013
constexpr void basic_scan_parse_context<CharT>::do_check_arg_id(size_t id)
6014
30.1M
{
6015
30.1M
    if (detail::is_constant_evaluated() &&
6016
30.1M
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6017
        // The cast below will cause an error on gcc pre-12
6018
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6019
0
        if (static_cast<int>(id) >=
6020
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6021
0
            SCN_UNLIKELY_ATTR
6022
0
            on_error("Argument not found");
6023
0
        }
6024
0
    }
6025
30.1M
}
scn::v3::basic_scan_parse_context<char>::do_check_arg_id(unsigned long)
Line
Count
Source
6014
6.93M
{
6015
6.93M
    if (detail::is_constant_evaluated() &&
6016
6.93M
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6017
        // The cast below will cause an error on gcc pre-12
6018
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6019
0
        if (static_cast<int>(id) >=
6020
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6021
0
            SCN_UNLIKELY_ATTR
6022
0
            on_error("Argument not found");
6023
0
        }
6024
0
    }
6025
6.93M
}
scn::v3::basic_scan_parse_context<wchar_t>::do_check_arg_id(unsigned long)
Line
Count
Source
6014
23.2M
{
6015
23.2M
    if (detail::is_constant_evaluated() &&
6016
23.2M
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6017
        // The cast below will cause an error on gcc pre-12
6018
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6019
0
        if (static_cast<int>(id) >=
6020
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6021
0
            SCN_UNLIKELY_ATTR
6022
0
            on_error("Argument not found");
6023
0
        }
6024
0
    }
6025
23.2M
}
6026
6027
namespace detail {
6028
enum class align_type : unsigned char {
6029
    none = 0,
6030
    left = 1,   // '<'
6031
    right = 2,  // '>'
6032
    center = 3  // '^'
6033
};
6034
6035
enum class presentation_type {
6036
    none,
6037
    int_binary,            // 'b', 'B'
6038
    int_decimal,           // 'd'
6039
    int_generic,           // 'i'
6040
    int_unsigned_decimal,  // 'u'
6041
    int_octal,             // 'o'
6042
    int_hex,               // 'x', 'X'
6043
    int_arbitrary_base,    // 'rnn', 'Rnn' (R for radix)
6044
    float_hex,             // 'a', 'A'
6045
    float_scientific,      // 'e', 'E'
6046
    float_fixed,           // 'f', 'F'
6047
    float_general,         // 'g', 'G'
6048
    string,                // 's'
6049
    string_set,            // '[...]'
6050
    regex,                 // '/.../.'
6051
    regex_escaped,         // '/..\/../.'
6052
    character,             // 'c'
6053
    escaped_character,     // '?'
6054
    pointer,               // 'p'
6055
};
6056
6057
enum class regex_flags {
6058
    none = 0,
6059
    multiline = 1,   // /m
6060
    singleline = 2,  // /s
6061
    nocase = 4,      // /i
6062
    nocapture = 8,   // /n
6063
    // TODO?
6064
    // would probably need to go hand-in-hand with locale,
6065
    // where it could even be the default/only option -> no flag?
6066
    // why else would you even use locale with a regex?
6067
    // collate = 16,
6068
};
6069
6070
constexpr regex_flags operator&(regex_flags a, regex_flags b)
6071
81.7k
{
6072
81.7k
    return static_cast<regex_flags>(static_cast<unsigned>(a) &
6073
81.7k
                                    static_cast<unsigned>(b));
6074
81.7k
}
6075
constexpr regex_flags operator|(regex_flags a, regex_flags b)
6076
12.1k
{
6077
12.1k
    return static_cast<regex_flags>(static_cast<unsigned>(a) |
6078
12.1k
                                    static_cast<unsigned>(b));
6079
12.1k
}
6080
constexpr regex_flags operator^(regex_flags a, regex_flags b)
6081
0
{
6082
0
    return static_cast<regex_flags>(static_cast<unsigned>(a) ^
6083
0
                                    static_cast<unsigned>(b));
6084
0
}
6085
6086
constexpr regex_flags& operator&=(regex_flags& a, regex_flags b)
6087
0
{
6088
0
    return a = a & b;
6089
0
}
6090
constexpr regex_flags& operator|=(regex_flags& a, regex_flags b)
6091
12.1k
{
6092
12.1k
    return a = a | b;
6093
12.1k
}
6094
constexpr regex_flags& operator^=(regex_flags& a, regex_flags b)
6095
0
{
6096
0
    return a = a ^ b;
6097
0
}
6098
6099
class fill_type {
6100
public:
6101
    constexpr void operator=(char c)
6102
0
    {
6103
0
        m_data[0] = c;
6104
0
        m_size = 1;
6105
0
    }
6106
6107
    template <typename CharT>
6108
    constexpr void operator=(std::basic_string_view<CharT> s)
6109
9.62k
    {
6110
9.62k
        SCN_EXPECT(!s.empty());
6111
9.62k
        SCN_EXPECT(s.size() * sizeof(CharT) <= max_size);
6112
9.62k
        if constexpr (sizeof(CharT) == 1) {
6113
20.4k
            for (size_t i = 0; i < s.size(); ++i) {
6114
11.0k
                SCN_GCC_PUSH
6115
11.0k
                SCN_GCC_IGNORE("-Wstringop-overflow")  // false positive
6116
11.0k
                m_data[i] = s[i];
6117
11.0k
                SCN_GCC_POP
6118
11.0k
            }
6119
9.40k
            m_size = static_cast<unsigned char>(s.size());
6120
9.40k
        }
6121
218
        else if constexpr (sizeof(CharT) == 2) {
6122
218
            m_data[0] = static_cast<char>(static_cast<unsigned>(s.front()));
6123
218
            m_data[1] =
6124
218
                static_cast<char>(static_cast<unsigned>(s.front()) >> 8);
6125
218
            if (s.size() == 1) {
6126
218
                return;
6127
218
            }
6128
218
            m_data[2] = static_cast<char>(static_cast<unsigned>(s[1]));
6129
218
            m_data[3] = static_cast<char>(static_cast<unsigned>(s[1]) >> 8);
6130
218
        }
6131
218
        else {
6132
218
            const auto front = static_cast<unsigned>(s.front());
6133
218
            m_data[0] = static_cast<char>(front);
6134
218
            m_data[1] = static_cast<char>(front >> 8);
6135
218
            m_data[2] = static_cast<char>(front >> 16);
6136
218
            m_data[3] = static_cast<char>(front >> 24);
6137
218
        }
6138
9.62k
    }
void scn::v3::detail::fill_type::operator=<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
6109
9.40k
    {
6110
9.40k
        SCN_EXPECT(!s.empty());
6111
9.40k
        SCN_EXPECT(s.size() * sizeof(CharT) <= max_size);
6112
9.40k
        if constexpr (sizeof(CharT) == 1) {
6113
20.4k
            for (size_t i = 0; i < s.size(); ++i) {
6114
11.0k
                SCN_GCC_PUSH
6115
11.0k
                SCN_GCC_IGNORE("-Wstringop-overflow")  // false positive
6116
11.0k
                m_data[i] = s[i];
6117
11.0k
                SCN_GCC_POP
6118
11.0k
            }
6119
9.40k
            m_size = static_cast<unsigned char>(s.size());
6120
9.40k
        }
6121
9.40k
        else if constexpr (sizeof(CharT) == 2) {
6122
9.40k
            m_data[0] = static_cast<char>(static_cast<unsigned>(s.front()));
6123
9.40k
            m_data[1] =
6124
9.40k
                static_cast<char>(static_cast<unsigned>(s.front()) >> 8);
6125
9.40k
            if (s.size() == 1) {
6126
9.40k
                return;
6127
9.40k
            }
6128
9.40k
            m_data[2] = static_cast<char>(static_cast<unsigned>(s[1]));
6129
9.40k
            m_data[3] = static_cast<char>(static_cast<unsigned>(s[1]) >> 8);
6130
9.40k
        }
6131
9.40k
        else {
6132
9.40k
            const auto front = static_cast<unsigned>(s.front());
6133
9.40k
            m_data[0] = static_cast<char>(front);
6134
9.40k
            m_data[1] = static_cast<char>(front >> 8);
6135
9.40k
            m_data[2] = static_cast<char>(front >> 16);
6136
9.40k
            m_data[3] = static_cast<char>(front >> 24);
6137
9.40k
        }
6138
9.40k
    }
void scn::v3::detail::fill_type::operator=<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
6109
218
    {
6110
218
        SCN_EXPECT(!s.empty());
6111
218
        SCN_EXPECT(s.size() * sizeof(CharT) <= max_size);
6112
218
        if constexpr (sizeof(CharT) == 1) {
6113
218
            for (size_t i = 0; i < s.size(); ++i) {
6114
218
                SCN_GCC_PUSH
6115
218
                SCN_GCC_IGNORE("-Wstringop-overflow")  // false positive
6116
218
                m_data[i] = s[i];
6117
218
                SCN_GCC_POP
6118
218
            }
6119
218
            m_size = static_cast<unsigned char>(s.size());
6120
218
        }
6121
218
        else if constexpr (sizeof(CharT) == 2) {
6122
218
            m_data[0] = static_cast<char>(static_cast<unsigned>(s.front()));
6123
218
            m_data[1] =
6124
218
                static_cast<char>(static_cast<unsigned>(s.front()) >> 8);
6125
218
            if (s.size() == 1) {
6126
218
                return;
6127
218
            }
6128
218
            m_data[2] = static_cast<char>(static_cast<unsigned>(s[1]));
6129
218
            m_data[3] = static_cast<char>(static_cast<unsigned>(s[1]) >> 8);
6130
218
        }
6131
218
        else {
6132
218
            const auto front = static_cast<unsigned>(s.front());
6133
218
            m_data[0] = static_cast<char>(front);
6134
218
            m_data[1] = static_cast<char>(front >> 8);
6135
218
            m_data[2] = static_cast<char>(front >> 16);
6136
218
            m_data[3] = static_cast<char>(front >> 24);
6137
218
        }
6138
218
    }
6139
6140
    constexpr size_t size() const
6141
5.84k
    {
6142
5.84k
        return m_size;
6143
5.84k
    }
6144
6145
    template <typename CharT>
6146
    CharT get_code_unit() const
6147
5.06k
    {
6148
5.06k
        SCN_EXPECT(m_size <= sizeof(CharT));
6149
5.06k
        CharT r{};
6150
5.06k
        std::memcpy(&r, m_data, m_size);
6151
5.06k
        return r;
6152
5.06k
    }
char scn::v3::detail::fill_type::get_code_unit<char>() const
Line
Count
Source
6147
4.79k
    {
6148
4.79k
        SCN_EXPECT(m_size <= sizeof(CharT));
6149
4.79k
        CharT r{};
6150
4.79k
        std::memcpy(&r, m_data, m_size);
6151
4.79k
        return r;
6152
4.79k
    }
wchar_t scn::v3::detail::fill_type::get_code_unit<wchar_t>() const
Line
Count
Source
6147
276
    {
6148
276
        SCN_EXPECT(m_size <= sizeof(CharT));
6149
276
        CharT r{};
6150
276
        std::memcpy(&r, m_data, m_size);
6151
276
        return r;
6152
276
    }
6153
6154
    template <typename CharT>
6155
    std::basic_string_view<CharT> get_code_units() const
6156
774
    {
6157
774
        return {reinterpret_cast<const CharT*>(m_data), m_size};
6158
774
    }
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::fill_type::get_code_units<char>() const
Line
Count
Source
6156
774
    {
6157
774
        return {reinterpret_cast<const CharT*>(m_data), m_size};
6158
774
    }
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::fill_type::get_code_units<wchar_t>() const
6159
6160
private:
6161
    static constexpr size_t max_size = 4;
6162
    char m_data[max_size] = {' '};
6163
    unsigned char m_size{1};
6164
};
6165
6166
struct format_specs {
6167
    int width{0}, precision{0};
6168
    fill_type fill{};
6169
    presentation_type type{presentation_type::none};
6170
    std::array<uint8_t, 128 / 8> charset_literals{0};
6171
    bool charset_has_nonascii{false}, charset_is_inverted{false};
6172
    const void* charset_string_data{nullptr};
6173
    size_t charset_string_size{0};
6174
    regex_flags regexp_flags{regex_flags::none};
6175
    unsigned char arbitrary_base{0};
6176
    align_type align{align_type::none};
6177
    bool localized{false};
6178
6179
    constexpr format_specs() = default;
6180
6181
    SCN_NODISCARD constexpr int get_base() const
6182
3.92M
    {
6183
3.92M
        SCN_GCC_COMPAT_PUSH
6184
3.92M
        SCN_GCC_COMPAT_IGNORE("-Wswitch-enum")
6185
3.92M
        switch (type) {
6186
745k
            case presentation_type::none:
6187
745k
                return 10;
6188
991k
            case presentation_type::int_generic:
6189
991k
                return 0;
6190
0
            case presentation_type::int_arbitrary_base:
6191
0
                return arbitrary_base;
6192
6193
223k
            case presentation_type::int_binary:
6194
223k
                return 2;
6195
388k
            case presentation_type::int_octal:
6196
388k
                return 8;
6197
741k
            case presentation_type::int_decimal:
6198
741k
            case presentation_type::int_unsigned_decimal:
6199
741k
                return 10;
6200
838k
            case presentation_type::int_hex:
6201
838k
                return 16;
6202
6203
0
            default:
6204
0
                SCN_EXPECT(false);
6205
3.92M
                SCN_UNREACHABLE;
6206
3.92M
        }
6207
3.92M
        SCN_GCC_COMPAT_POP
6208
3.92M
    }
6209
6210
    template <typename CharT>
6211
    std::basic_string_view<CharT> charset_string() const
6212
25.2k
    {
6213
25.2k
        return {reinterpret_cast<const CharT*>(charset_string_data),
6214
25.2k
                charset_string_size};
6215
25.2k
    }
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::format_specs::charset_string<char>() const
Line
Count
Source
6212
25.2k
    {
6213
25.2k
        return {reinterpret_cast<const CharT*>(charset_string_data),
6214
25.2k
                charset_string_size};
6215
25.2k
    }
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::format_specs::charset_string<wchar_t>() const
6216
};
6217
6218
struct specs_setter {
6219
public:
6220
30.1M
    explicit constexpr specs_setter(format_specs& specs) : m_specs(specs) {}
6221
6222
    constexpr void on_align(align_type align)
6223
14.8k
    {
6224
14.8k
        m_specs.align = align;
6225
14.8k
    }
6226
    template <typename CharT>
6227
    constexpr void on_fill(std::basic_string_view<CharT> fill)
6228
9.62k
    {
6229
9.62k
        m_specs.fill = fill;
6230
9.62k
    }
void scn::v3::detail::specs_setter::on_fill<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
6228
9.40k
    {
6229
9.40k
        m_specs.fill = fill;
6230
9.40k
    }
void scn::v3::detail::specs_setter::on_fill<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
6228
218
    {
6229
218
        m_specs.fill = fill;
6230
218
    }
6231
    constexpr void on_localized()
6232
1.71M
    {
6233
1.71M
        if constexpr (!SCN_DISABLE_LOCALE) {
6234
1.71M
            m_specs.localized = true;
6235
1.71M
        }
6236
0
        else {
6237
0
            on_error("'L' flag invalid when SCN_DISABLE_LOCALE is on");
6238
0
        }
6239
1.71M
    }
6240
6241
    constexpr void on_width(int width)
6242
41.3k
    {
6243
41.3k
        if (m_specs.precision != 0 && width > m_specs.precision) {
6244
            // clang-format off
6245
0
            return this->on_error("Width (i.e., minimum field length) cannot be larger than precision (i.e., maximum field length)");
6246
            // clang-format on
6247
0
        }
6248
6249
41.3k
        m_specs.width = width;
6250
41.3k
    }
6251
    constexpr void on_precision(int prec)
6252
10.1k
    {
6253
10.1k
        if (m_specs.width > prec) {
6254
            // clang-format off
6255
150
            return this->on_error("Width (i.e., minimum field length) cannot be larger than precision (i.e., maximum field length)");
6256
            // clang-format on
6257
150
        }
6258
6259
9.96k
        m_specs.precision = prec;
6260
9.96k
    }
6261
6262
    constexpr void on_type(presentation_type type)
6263
28.1M
    {
6264
28.1M
        m_specs.type = type;
6265
28.1M
    }
6266
6267
    constexpr void on_charset_single(char32_t cp)
6268
5.47M
    {
6269
5.47M
        const auto cp_value = static_cast<unsigned>(cp);
6270
5.47M
        if (SCN_LIKELY(cp_value <= 127)) {
6271
4.94M
            m_specs.charset_literals[cp_value / 8] |=
6272
4.94M
                static_cast<unsigned char>(1ul << (cp_value % 8));
6273
4.94M
        }
6274
527k
        else {
6275
527k
            m_specs.charset_has_nonascii = true;
6276
527k
        }
6277
5.47M
    }
6278
6279
    constexpr void on_charset_range(char32_t begin, char32_t end)
6280
50.3k
    {
6281
50.3k
        const auto begin_value = static_cast<unsigned>(begin);
6282
50.3k
        const auto end_value = static_cast<unsigned>(end);
6283
50.3k
        SCN_EXPECT(begin_value < end_value);
6284
6285
50.3k
        if (SCN_LIKELY(end_value <= 127)) {
6286
            // No need to bit-twiddle with a mask, because with the
6287
            // SCN_ASSUME, -O3 will optimize this to a single operation
6288
42.7k
            SCN_ASSUME(begin_value < end_value);
6289
1.60M
            for (auto v = begin_value; v != end_value; ++v) {
6290
1.55M
                m_specs.charset_literals[v / 8] |=
6291
1.55M
                    static_cast<unsigned char>(1ul << (v % 8));
6292
1.55M
            }
6293
42.7k
        }
6294
7.62k
        else {
6295
7.62k
            m_specs.charset_has_nonascii = true;
6296
7.62k
        }
6297
50.3k
    }
6298
6299
    constexpr void on_charset_inverted()
6300
8.06k
    {
6301
8.06k
        m_specs.charset_is_inverted = true;
6302
8.06k
    }
6303
6304
    template <typename CharT>
6305
    constexpr void on_character_set_string(std::basic_string_view<CharT> fmt)
6306
42.0k
    {
6307
42.0k
        m_specs.charset_string_data = fmt.data();
6308
42.0k
        m_specs.charset_string_size = fmt.size();
6309
42.0k
        on_type(presentation_type::string_set);
6310
42.0k
    }
void scn::v3::detail::specs_setter::on_character_set_string<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
6306
33.1k
    {
6307
33.1k
        m_specs.charset_string_data = fmt.data();
6308
33.1k
        m_specs.charset_string_size = fmt.size();
6309
33.1k
        on_type(presentation_type::string_set);
6310
33.1k
    }
void scn::v3::detail::specs_setter::on_character_set_string<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
6306
8.90k
    {
6307
8.90k
        m_specs.charset_string_data = fmt.data();
6308
8.90k
        m_specs.charset_string_size = fmt.size();
6309
8.90k
        on_type(presentation_type::string_set);
6310
8.90k
    }
6311
6312
    template <typename CharT>
6313
    constexpr void on_regex_pattern(std::basic_string_view<CharT> pattern)
6314
53.3k
    {
6315
53.3k
        m_specs.charset_string_data = pattern.data();
6316
53.3k
        m_specs.charset_string_size = pattern.size();
6317
53.3k
    }
void scn::v3::detail::specs_setter::on_regex_pattern<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
6314
53.2k
    {
6315
53.2k
        m_specs.charset_string_data = pattern.data();
6316
53.2k
        m_specs.charset_string_size = pattern.size();
6317
53.2k
    }
void scn::v3::detail::specs_setter::on_regex_pattern<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
6314
38
    {
6315
38
        m_specs.charset_string_data = pattern.data();
6316
38
        m_specs.charset_string_size = pattern.size();
6317
38
    }
6318
    constexpr void on_regex_flags(regex_flags flags)
6319
52.5k
    {
6320
52.5k
        m_specs.regexp_flags = flags;
6321
52.5k
    }
6322
6323
    // Intentionally not constexpr
6324
    void on_error(const char* msg)
6325
324k
    {
6326
324k
        SCN_UNLIKELY_ATTR
6327
324k
        m_error = scan_error{scan_error::invalid_format_string, msg};
6328
324k
    }
6329
    void on_error(scan_error err)
6330
0
    {
6331
0
        SCN_LIKELY(err);
6332
0
        m_error = err;
6333
0
    }
6334
6335
    constexpr explicit operator bool() const
6336
35.4M
    {
6337
35.4M
        return static_cast<bool>(m_error);
6338
35.4M
    }
6339
6340
    constexpr scan_error get_error() const
6341
0
    {
6342
0
        return m_error;
6343
0
    }
6344
6345
protected:
6346
    format_specs& m_specs;
6347
    scan_error m_error;
6348
};
6349
6350
template <typename CharT>
6351
constexpr int parse_simple_int(const CharT*& begin, const CharT* end)
6352
52.8k
{
6353
52.8k
    SCN_EXPECT(begin != end);
6354
52.8k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
6355
6356
52.8k
    unsigned long long value = 0;
6357
152k
    do {
6358
152k
        value *= 10;
6359
152k
        value += static_cast<unsigned long long>(*begin - '0');
6360
152k
        if (value >
6361
152k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
6362
378
            return -1;
6363
378
        }
6364
152k
        ++begin;
6365
152k
    } while (begin != end && *begin >= '0' && *begin <= '9');
6366
52.4k
    return static_cast<int>(value);
6367
52.8k
}
int scn::v3::detail::parse_simple_int<char>(char const*&, char const*)
Line
Count
Source
6352
32.5k
{
6353
32.5k
    SCN_EXPECT(begin != end);
6354
32.5k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
6355
6356
32.5k
    unsigned long long value = 0;
6357
114k
    do {
6358
114k
        value *= 10;
6359
114k
        value += static_cast<unsigned long long>(*begin - '0');
6360
114k
        if (value >
6361
114k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
6362
378
            return -1;
6363
378
        }
6364
114k
        ++begin;
6365
114k
    } while (begin != end && *begin >= '0' && *begin <= '9');
6366
32.1k
    return static_cast<int>(value);
6367
32.5k
}
int scn::v3::detail::parse_simple_int<wchar_t>(wchar_t const*&, wchar_t const*)
Line
Count
Source
6352
20.2k
{
6353
20.2k
    SCN_EXPECT(begin != end);
6354
20.2k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
6355
6356
20.2k
    unsigned long long value = 0;
6357
37.9k
    do {
6358
37.9k
        value *= 10;
6359
37.9k
        value += static_cast<unsigned long long>(*begin - '0');
6360
37.9k
        if (value >
6361
37.9k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
6362
0
            return -1;
6363
0
        }
6364
37.9k
        ++begin;
6365
37.9k
    } while (begin != end && *begin >= '0' && *begin <= '9');
6366
20.2k
    return static_cast<int>(value);
6367
20.2k
}
6368
6369
template <typename CharT, typename IDHandler>
6370
constexpr const CharT* do_parse_arg_id(const CharT* begin,
6371
                                       const CharT* end,
6372
                                       IDHandler&& handler)
6373
20.6k
{
6374
20.6k
    SCN_EXPECT(begin != end);
6375
6376
20.6k
    CharT c = *begin;
6377
20.6k
    if (c < CharT{'0'} || c > CharT{'9'}) {
6378
13.9k
        handler.on_error("Invalid argument ID");
6379
13.9k
        return begin;
6380
13.9k
    }
6381
6382
6.72k
    int idx = 0;
6383
6.72k
    if (c != CharT{'0'}) {
6384
1.00k
        idx = parse_simple_int(begin, end);
6385
1.00k
    }
6386
5.72k
    else {
6387
5.72k
        ++begin;
6388
5.72k
    }
6389
6390
6.72k
    if (begin == end || (*begin != CharT{'}'} && *begin != CharT{':'})) {
6391
764
        handler.on_error("Invalid argument ID");
6392
764
        return begin;
6393
764
    }
6394
5.95k
    handler(idx);
6395
6396
5.95k
    return begin;
6397
6.72k
}
impl.cpp:char const* scn::v3::detail::do_parse_arg_id<char, scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&)::id_adapter&>(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&&)
Line
Count
Source
6373
19.5k
{
6374
19.5k
    SCN_EXPECT(begin != end);
6375
6376
19.5k
    CharT c = *begin;
6377
19.5k
    if (c < CharT{'0'} || c > CharT{'9'}) {
6378
13.4k
        handler.on_error("Invalid argument ID");
6379
13.4k
        return begin;
6380
13.4k
    }
6381
6382
6.13k
    int idx = 0;
6383
6.13k
    if (c != CharT{'0'}) {
6384
612
        idx = parse_simple_int(begin, end);
6385
612
    }
6386
5.52k
    else {
6387
5.52k
        ++begin;
6388
5.52k
    }
6389
6390
6.13k
    if (begin == end || (*begin != CharT{'}'} && *begin != CharT{':'})) {
6391
398
        handler.on_error("Invalid argument ID");
6392
398
        return begin;
6393
398
    }
6394
5.74k
    handler(idx);
6395
6396
5.74k
    return begin;
6397
6.13k
}
Unexecuted instantiation: impl.cpp:char const* scn::v3::detail::do_parse_arg_id<char, scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&)::id_adapter&>(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&&)
impl.cpp:wchar_t const* scn::v3::detail::do_parse_arg_id<wchar_t, scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&&)
Line
Count
Source
6373
1.05k
{
6374
1.05k
    SCN_EXPECT(begin != end);
6375
6376
1.05k
    CharT c = *begin;
6377
1.05k
    if (c < CharT{'0'} || c > CharT{'9'}) {
6378
470
        handler.on_error("Invalid argument ID");
6379
470
        return begin;
6380
470
    }
6381
6382
582
    int idx = 0;
6383
582
    if (c != CharT{'0'}) {
6384
388
        idx = parse_simple_int(begin, end);
6385
388
    }
6386
194
    else {
6387
194
        ++begin;
6388
194
    }
6389
6390
582
    if (begin == end || (*begin != CharT{'}'} && *begin != CharT{':'})) {
6391
366
        handler.on_error("Invalid argument ID");
6392
366
        return begin;
6393
366
    }
6394
216
    handler(idx);
6395
6396
216
    return begin;
6397
582
}
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v3::detail::do_parse_arg_id<wchar_t, scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&&)
6398
6399
template <typename CharT, typename IDHandler>
6400
constexpr const CharT* parse_arg_id(const CharT* begin,
6401
                                    const CharT* end,
6402
                                    IDHandler&& handler)
6403
30.1M
{
6404
30.1M
    SCN_EXPECT(begin != end);
6405
30.1M
    if (*begin != '}' && *begin != ':') {
6406
20.6k
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6407
20.6k
    }
6408
6409
30.1M
    handler();
6410
30.1M
    return begin;
6411
30.1M
}
impl.cpp:char const* scn::v3::detail::parse_arg_id<char, scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&)::id_adapter&>(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&&)
Line
Count
Source
6403
3.54M
{
6404
3.54M
    SCN_EXPECT(begin != end);
6405
3.54M
    if (*begin != '}' && *begin != ':') {
6406
19.5k
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6407
19.5k
    }
6408
6409
3.52M
    handler();
6410
3.52M
    return begin;
6411
3.54M
}
impl.cpp:char const* scn::v3::detail::parse_arg_id<char, scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&)::id_adapter&>(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&&)
Line
Count
Source
6403
3.39M
{
6404
3.39M
    SCN_EXPECT(begin != end);
6405
3.39M
    if (*begin != '}' && *begin != ':') {
6406
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6407
0
    }
6408
6409
3.39M
    handler();
6410
3.39M
    return begin;
6411
3.39M
}
impl.cpp:wchar_t const* scn::v3::detail::parse_arg_id<wchar_t, scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&&)
Line
Count
Source
6403
15.2M
{
6404
15.2M
    SCN_EXPECT(begin != end);
6405
15.2M
    if (*begin != '}' && *begin != ':') {
6406
1.05k
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6407
1.05k
    }
6408
6409
15.2M
    handler();
6410
15.2M
    return begin;
6411
15.2M
}
impl.cpp:wchar_t const* scn::v3::detail::parse_arg_id<wchar_t, scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&&)
Line
Count
Source
6403
7.93M
{
6404
7.93M
    SCN_EXPECT(begin != end);
6405
7.93M
    if (*begin != '}' && *begin != ':') {
6406
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6407
0
    }
6408
6409
7.93M
    handler();
6410
7.93M
    return begin;
6411
7.93M
}
6412
6413
template <typename CharT>
6414
constexpr presentation_type parse_presentation_type(CharT type)
6415
28.3M
{
6416
28.3M
    switch (type) {
6417
225k
        case 'b':
6418
365k
        case 'B':
6419
365k
            return presentation_type::int_binary;
6420
749k
        case 'd':
6421
749k
            return presentation_type::int_decimal;
6422
1.00M
        case 'i':
6423
1.00M
            return presentation_type::int_generic;
6424
280
        case 'u':
6425
280
            return presentation_type::int_unsigned_decimal;
6426
393k
        case 'o':
6427
393k
            return presentation_type::int_octal;
6428
845k
        case 'x':
6429
845k
        case 'X':
6430
845k
            return presentation_type::int_hex;
6431
62
        case 'r':
6432
170
        case 'R':
6433
170
            return presentation_type::int_arbitrary_base;
6434
1.06M
        case 'a':
6435
1.06M
        case 'A':
6436
1.06M
            return presentation_type::float_hex;
6437
125k
        case 'e':
6438
125k
        case 'E':
6439
125k
            return presentation_type::float_scientific;
6440
467k
        case 'f':
6441
468k
        case 'F':
6442
468k
            return presentation_type::float_fixed;
6443
825k
        case 'g':
6444
825k
        case 'G':
6445
825k
            return presentation_type::float_general;
6446
22.1M
        case 's':
6447
22.1M
            return presentation_type::string;
6448
15.2k
        case 'c':
6449
15.2k
            return presentation_type::character;
6450
54
        case '?':
6451
54
            return presentation_type::escaped_character;
6452
134
        case 'p':
6453
134
            return presentation_type::pointer;
6454
0
        case '[':
6455
0
        case '/':
6456
            // Should be handled by parse_presentation_set and
6457
            // parse_presentation_regex
6458
0
            SCN_EXPECT(false);
6459
0
            SCN_UNREACHABLE;
6460
295k
        default:
6461
295k
            return presentation_type::none;
6462
28.3M
    }
6463
28.3M
}
scn::v3::detail::presentation_type scn::v3::detail::parse_presentation_type<char>(char)
Line
Count
Source
6415
5.27M
{
6416
5.27M
    switch (type) {
6417
131k
        case 'b':
6418
178k
        case 'B':
6419
178k
            return presentation_type::int_binary;
6420
654k
        case 'd':
6421
654k
            return presentation_type::int_decimal;
6422
906k
        case 'i':
6423
906k
            return presentation_type::int_generic;
6424
108
        case 'u':
6425
108
            return presentation_type::int_unsigned_decimal;
6426
299k
        case 'o':
6427
299k
            return presentation_type::int_octal;
6428
750k
        case 'x':
6429
750k
        case 'X':
6430
750k
            return presentation_type::int_hex;
6431
44
        case 'r':
6432
98
        case 'R':
6433
98
            return presentation_type::int_arbitrary_base;
6434
992k
        case 'a':
6435
992k
        case 'A':
6436
992k
            return presentation_type::float_hex;
6437
59.8k
        case 'e':
6438
59.9k
        case 'E':
6439
59.9k
            return presentation_type::float_scientific;
6440
393k
        case 'f':
6441
393k
        case 'F':
6442
393k
            return presentation_type::float_fixed;
6443
750k
        case 'g':
6444
750k
        case 'G':
6445
750k
            return presentation_type::float_general;
6446
183k
        case 's':
6447
183k
            return presentation_type::string;
6448
6.29k
        case 'c':
6449
6.29k
            return presentation_type::character;
6450
36
        case '?':
6451
36
            return presentation_type::escaped_character;
6452
98
        case 'p':
6453
98
            return presentation_type::pointer;
6454
0
        case '[':
6455
0
        case '/':
6456
            // Should be handled by parse_presentation_set and
6457
            // parse_presentation_regex
6458
0
            SCN_EXPECT(false);
6459
0
            SCN_UNREACHABLE;
6460
99.6k
        default:
6461
99.6k
            return presentation_type::none;
6462
5.27M
    }
6463
5.27M
}
scn::v3::detail::presentation_type scn::v3::detail::parse_presentation_type<wchar_t>(wchar_t)
Line
Count
Source
6415
23.0M
{
6416
23.0M
    switch (type) {
6417
93.9k
        case 'b':
6418
187k
        case 'B':
6419
187k
            return presentation_type::int_binary;
6420
94.6k
        case 'd':
6421
94.6k
            return presentation_type::int_decimal;
6422
94.6k
        case 'i':
6423
94.6k
            return presentation_type::int_generic;
6424
172
        case 'u':
6425
172
            return presentation_type::int_unsigned_decimal;
6426
94.2k
        case 'o':
6427
94.2k
            return presentation_type::int_octal;
6428
94.8k
        case 'x':
6429
94.8k
        case 'X':
6430
94.8k
            return presentation_type::int_hex;
6431
18
        case 'r':
6432
72
        case 'R':
6433
72
            return presentation_type::int_arbitrary_base;
6434
74.6k
        case 'a':
6435
74.7k
        case 'A':
6436
74.7k
            return presentation_type::float_hex;
6437
65.3k
        case 'e':
6438
65.4k
        case 'E':
6439
65.4k
            return presentation_type::float_scientific;
6440
74.3k
        case 'f':
6441
74.4k
        case 'F':
6442
74.4k
            return presentation_type::float_fixed;
6443
74.3k
        case 'g':
6444
74.3k
        case 'G':
6445
74.3k
            return presentation_type::float_general;
6446
21.9M
        case 's':
6447
21.9M
            return presentation_type::string;
6448
8.98k
        case 'c':
6449
8.98k
            return presentation_type::character;
6450
18
        case '?':
6451
18
            return presentation_type::escaped_character;
6452
36
        case 'p':
6453
36
            return presentation_type::pointer;
6454
0
        case '[':
6455
0
        case '/':
6456
            // Should be handled by parse_presentation_set and
6457
            // parse_presentation_regex
6458
0
            SCN_EXPECT(false);
6459
0
            SCN_UNREACHABLE;
6460
196k
        default:
6461
196k
            return presentation_type::none;
6462
23.0M
    }
6463
23.0M
}
6464
6465
template <typename CharT>
6466
constexpr bool is_ascii_letter(CharT ch)
6467
29.7M
{
6468
29.7M
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
6469
29.7M
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
6470
29.7M
}
bool scn::v3::detail::is_ascii_letter<char>(char)
Line
Count
Source
6467
6.71M
{
6468
6.71M
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
6469
6.71M
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
6470
6.71M
}
bool scn::v3::detail::is_ascii_letter<wchar_t>(wchar_t)
Line
Count
Source
6467
22.9M
{
6468
22.9M
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
6469
22.9M
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
6470
22.9M
}
6471
6472
template <typename CharT>
6473
constexpr int code_point_length(const CharT* begin, const CharT* end)
6474
2.29M
{
6475
2.29M
    SCN_EXPECT(begin != end);
6476
2.29M
    if constexpr (sizeof(CharT) != 1) {
6477
1.80M
        return 1;
6478
1.80M
    }
6479
1.80M
    else {
6480
1.80M
        const auto lengths =
6481
1.80M
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
6482
1.80M
            "\3\4";
6483
1.80M
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
6484
1.80M
        return len;
6485
1.80M
    }
6486
2.29M
}
int scn::v3::detail::code_point_length<char>(char const*, char const*)
Line
Count
Source
6474
1.80M
{
6475
1.80M
    SCN_EXPECT(begin != end);
6476
1.80M
    if constexpr (sizeof(CharT) != 1) {
6477
1.80M
        return 1;
6478
1.80M
    }
6479
1.80M
    else {
6480
1.80M
        const auto lengths =
6481
1.80M
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
6482
1.80M
            "\3\4";
6483
1.80M
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
6484
1.80M
        return len;
6485
1.80M
    }
6486
1.80M
}
int scn::v3::detail::code_point_length<wchar_t>(wchar_t const*, wchar_t const*)
Line
Count
Source
6474
490k
{
6475
490k
    SCN_EXPECT(begin != end);
6476
490k
    if constexpr (sizeof(CharT) != 1) {
6477
490k
        return 1;
6478
490k
    }
6479
490k
    else {
6480
490k
        const auto lengths =
6481
490k
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
6482
490k
            "\3\4";
6483
490k
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
6484
490k
        return len;
6485
490k
    }
6486
490k
}
6487
6488
template <typename CharT, typename Handler>
6489
constexpr const CharT* parse_align(const CharT* begin,
6490
                                   const CharT* end,
6491
                                   Handler&& handler)
6492
2.29M
{
6493
2.29M
    SCN_EXPECT(begin != end);
6494
6495
4.58M
    auto check_align = [](wchar_t ch) {
6496
4.58M
        switch (ch) {
6497
1.50k
            case L'<':
6498
1.50k
                return align_type::left;
6499
2.96k
            case L'>':
6500
2.96k
                return align_type::right;
6501
16.5k
            case L'^':
6502
16.5k
                return align_type::center;
6503
4.56M
            default:
6504
4.56M
                return align_type::none;
6505
4.58M
        }
6506
4.58M
    };
impl.cpp:scn::v3::detail::parse_align<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
6495
1.90M
    auto check_align = [](wchar_t ch) {
6496
1.90M
        switch (ch) {
6497
1.30k
            case L'<':
6498
1.30k
                return align_type::left;
6499
2.88k
            case L'>':
6500
2.88k
                return align_type::right;
6501
16.0k
            case L'^':
6502
16.0k
                return align_type::center;
6503
1.88M
            default:
6504
1.88M
                return align_type::none;
6505
1.90M
        }
6506
1.90M
    };
impl.cpp:scn::v3::detail::parse_align<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
6495
1.70M
    auto check_align = [](wchar_t ch) {
6496
1.70M
        switch (ch) {
6497
0
            case L'<':
6498
0
                return align_type::left;
6499
0
            case L'>':
6500
0
                return align_type::right;
6501
0
            case L'^':
6502
0
                return align_type::center;
6503
1.70M
            default:
6504
1.70M
                return align_type::none;
6505
1.70M
        }
6506
1.70M
    };
impl.cpp:scn::v3::detail::parse_align<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
6495
507k
    auto check_align = [](wchar_t ch) {
6496
507k
        switch (ch) {
6497
198
            case L'<':
6498
198
                return align_type::left;
6499
82
            case L'>':
6500
82
                return align_type::right;
6501
462
            case L'^':
6502
462
                return align_type::center;
6503
507k
            default:
6504
507k
                return align_type::none;
6505
507k
        }
6506
507k
    };
impl.cpp:scn::v3::detail::parse_align<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
6495
472k
    auto check_align = [](wchar_t ch) {
6496
472k
        switch (ch) {
6497
0
            case L'<':
6498
0
                return align_type::left;
6499
0
            case L'>':
6500
0
                return align_type::right;
6501
0
            case L'^':
6502
0
                return align_type::center;
6503
472k
            default:
6504
472k
                return align_type::none;
6505
472k
        }
6506
472k
    };
6507
6508
2.29M
    auto potential_fill_len = code_point_length(begin, end);
6509
2.29M
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6510
2.29M
                     std::distance(begin, end) < potential_fill_len)) {
6511
152
        handler.on_error("Invalid encoding in fill character");
6512
152
        return begin;
6513
152
    }
6514
6515
2.29M
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6516
6517
2.29M
    auto potential_fill = std::basic_string_view<CharT>{
6518
2.29M
        begin, static_cast<size_t>(potential_fill_len)};
6519
2.29M
    const auto begin_before_fill = begin;
6520
2.29M
    begin += potential_fill_len;
6521
6522
2.29M
    if (begin == end) {
6523
1.77k
        return begin_before_fill;
6524
1.77k
    }
6525
6526
2.29M
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
6527
2.29M
    const auto begin_after_fill = begin;
6528
2.29M
    ++begin;
6529
6530
2.29M
    if (potential_fill_len == 1) {
6531
2.29M
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
6532
266
            handler.on_error("Invalid fill character '{' in format string");
6533
266
            return begin;
6534
266
        }
6535
2.29M
        if (potential_fill[0] == '[') {
6536
39.6k
            return begin_before_fill;
6537
39.6k
        }
6538
2.29M
    }
6539
6540
2.25M
    if (potential_align_after_fill == align_type::none) {
6541
2.24M
        if (potential_align_on_fill != align_type::none) {
6542
5.20k
            handler.on_align(potential_align_on_fill);
6543
5.20k
            return begin_after_fill;
6544
5.20k
        }
6545
2.23M
        return begin_before_fill;
6546
2.24M
    }
6547
6548
9.62k
    handler.on_fill(potential_fill);
6549
9.62k
    handler.on_align(potential_align_after_fill);
6550
9.62k
    return begin;
6551
2.25M
}
impl.cpp:char const* scn::v3::detail::parse_align<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6492
953k
{
6493
953k
    SCN_EXPECT(begin != end);
6494
6495
953k
    auto check_align = [](wchar_t ch) {
6496
953k
        switch (ch) {
6497
953k
            case L'<':
6498
953k
                return align_type::left;
6499
953k
            case L'>':
6500
953k
                return align_type::right;
6501
953k
            case L'^':
6502
953k
                return align_type::center;
6503
953k
            default:
6504
953k
                return align_type::none;
6505
953k
        }
6506
953k
    };
6507
6508
953k
    auto potential_fill_len = code_point_length(begin, end);
6509
953k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6510
953k
                     std::distance(begin, end) < potential_fill_len)) {
6511
152
        handler.on_error("Invalid encoding in fill character");
6512
152
        return begin;
6513
152
    }
6514
6515
953k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6516
6517
953k
    auto potential_fill = std::basic_string_view<CharT>{
6518
953k
        begin, static_cast<size_t>(potential_fill_len)};
6519
953k
    const auto begin_before_fill = begin;
6520
953k
    begin += potential_fill_len;
6521
6522
953k
    if (begin == end) {
6523
1.19k
        return begin_before_fill;
6524
1.19k
    }
6525
6526
952k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
6527
952k
    const auto begin_after_fill = begin;
6528
952k
    ++begin;
6529
6530
952k
    if (potential_fill_len == 1) {
6531
951k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
6532
134
            handler.on_error("Invalid fill character '{' in format string");
6533
134
            return begin;
6534
134
        }
6535
951k
        if (potential_fill[0] == '[') {
6536
27.5k
            return begin_before_fill;
6537
27.5k
        }
6538
951k
    }
6539
6540
924k
    if (potential_align_after_fill == align_type::none) {
6541
915k
        if (potential_align_on_fill != align_type::none) {
6542
4.81k
            handler.on_align(potential_align_on_fill);
6543
4.81k
            return begin_after_fill;
6544
4.81k
        }
6545
910k
        return begin_before_fill;
6546
915k
    }
6547
6548
9.40k
    handler.on_fill(potential_fill);
6549
9.40k
    handler.on_align(potential_align_after_fill);
6550
9.40k
    return begin;
6551
924k
}
impl.cpp:char const* scn::v3::detail::parse_align<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
Line
Count
Source
6492
850k
{
6493
850k
    SCN_EXPECT(begin != end);
6494
6495
850k
    auto check_align = [](wchar_t ch) {
6496
850k
        switch (ch) {
6497
850k
            case L'<':
6498
850k
                return align_type::left;
6499
850k
            case L'>':
6500
850k
                return align_type::right;
6501
850k
            case L'^':
6502
850k
                return align_type::center;
6503
850k
            default:
6504
850k
                return align_type::none;
6505
850k
        }
6506
850k
    };
6507
6508
850k
    auto potential_fill_len = code_point_length(begin, end);
6509
850k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6510
850k
                     std::distance(begin, end) < potential_fill_len)) {
6511
0
        handler.on_error("Invalid encoding in fill character");
6512
0
        return begin;
6513
0
    }
6514
6515
850k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6516
6517
850k
    auto potential_fill = std::basic_string_view<CharT>{
6518
850k
        begin, static_cast<size_t>(potential_fill_len)};
6519
850k
    const auto begin_before_fill = begin;
6520
850k
    begin += potential_fill_len;
6521
6522
850k
    if (begin == end) {
6523
0
        return begin_before_fill;
6524
0
    }
6525
6526
850k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
6527
850k
    const auto begin_after_fill = begin;
6528
850k
    ++begin;
6529
6530
850k
    if (potential_fill_len == 1) {
6531
850k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
6532
0
            handler.on_error("Invalid fill character '{' in format string");
6533
0
            return begin;
6534
0
        }
6535
850k
        if (potential_fill[0] == '[') {
6536
2.25k
            return begin_before_fill;
6537
2.25k
        }
6538
850k
    }
6539
6540
848k
    if (potential_align_after_fill == align_type::none) {
6541
848k
        if (potential_align_on_fill != align_type::none) {
6542
0
            handler.on_align(potential_align_on_fill);
6543
0
            return begin_after_fill;
6544
0
        }
6545
848k
        return begin_before_fill;
6546
848k
    }
6547
6548
0
    handler.on_fill(potential_fill);
6549
0
    handler.on_align(potential_align_after_fill);
6550
0
    return begin;
6551
848k
}
impl.cpp:wchar_t const* scn::v3::detail::parse_align<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6492
254k
{
6493
254k
    SCN_EXPECT(begin != end);
6494
6495
254k
    auto check_align = [](wchar_t ch) {
6496
254k
        switch (ch) {
6497
254k
            case L'<':
6498
254k
                return align_type::left;
6499
254k
            case L'>':
6500
254k
                return align_type::right;
6501
254k
            case L'^':
6502
254k
                return align_type::center;
6503
254k
            default:
6504
254k
                return align_type::none;
6505
254k
        }
6506
254k
    };
6507
6508
254k
    auto potential_fill_len = code_point_length(begin, end);
6509
254k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6510
254k
                     std::distance(begin, end) < potential_fill_len)) {
6511
0
        handler.on_error("Invalid encoding in fill character");
6512
0
        return begin;
6513
0
    }
6514
6515
254k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6516
6517
254k
    auto potential_fill = std::basic_string_view<CharT>{
6518
254k
        begin, static_cast<size_t>(potential_fill_len)};
6519
254k
    const auto begin_before_fill = begin;
6520
254k
    begin += potential_fill_len;
6521
6522
254k
    if (begin == end) {
6523
582
        return begin_before_fill;
6524
582
    }
6525
6526
253k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
6527
253k
    const auto begin_after_fill = begin;
6528
253k
    ++begin;
6529
6530
253k
    if (potential_fill_len == 1) {
6531
253k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
6532
132
            handler.on_error("Invalid fill character '{' in format string");
6533
132
            return begin;
6534
132
        }
6535
253k
        if (potential_fill[0] == '[') {
6536
6.94k
            return begin_before_fill;
6537
6.94k
        }
6538
253k
    }
6539
6540
246k
    if (potential_align_after_fill == align_type::none) {
6541
246k
        if (potential_align_on_fill != align_type::none) {
6542
390
            handler.on_align(potential_align_on_fill);
6543
390
            return begin_after_fill;
6544
390
        }
6545
246k
        return begin_before_fill;
6546
246k
    }
6547
6548
218
    handler.on_fill(potential_fill);
6549
218
    handler.on_align(potential_align_after_fill);
6550
218
    return begin;
6551
246k
}
impl.cpp:wchar_t const* scn::v3::detail::parse_align<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
Line
Count
Source
6492
236k
{
6493
236k
    SCN_EXPECT(begin != end);
6494
6495
236k
    auto check_align = [](wchar_t ch) {
6496
236k
        switch (ch) {
6497
236k
            case L'<':
6498
236k
                return align_type::left;
6499
236k
            case L'>':
6500
236k
                return align_type::right;
6501
236k
            case L'^':
6502
236k
                return align_type::center;
6503
236k
            default:
6504
236k
                return align_type::none;
6505
236k
        }
6506
236k
    };
6507
6508
236k
    auto potential_fill_len = code_point_length(begin, end);
6509
236k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6510
236k
                     std::distance(begin, end) < potential_fill_len)) {
6511
0
        handler.on_error("Invalid encoding in fill character");
6512
0
        return begin;
6513
0
    }
6514
6515
236k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6516
6517
236k
    auto potential_fill = std::basic_string_view<CharT>{
6518
236k
        begin, static_cast<size_t>(potential_fill_len)};
6519
236k
    const auto begin_before_fill = begin;
6520
236k
    begin += potential_fill_len;
6521
6522
236k
    if (begin == end) {
6523
0
        return begin_before_fill;
6524
0
    }
6525
6526
236k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
6527
236k
    const auto begin_after_fill = begin;
6528
236k
    ++begin;
6529
6530
236k
    if (potential_fill_len == 1) {
6531
236k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
6532
0
            handler.on_error("Invalid fill character '{' in format string");
6533
0
            return begin;
6534
0
        }
6535
236k
        if (potential_fill[0] == '[') {
6536
2.95k
            return begin_before_fill;
6537
2.95k
        }
6538
236k
    }
6539
6540
233k
    if (potential_align_after_fill == align_type::none) {
6541
233k
        if (potential_align_on_fill != align_type::none) {
6542
0
            handler.on_align(potential_align_on_fill);
6543
0
            return begin_after_fill;
6544
0
        }
6545
233k
        return begin_before_fill;
6546
233k
    }
6547
6548
0
    handler.on_fill(potential_fill);
6549
0
    handler.on_align(potential_align_after_fill);
6550
0
    return begin;
6551
233k
}
6552
6553
template <typename CharT, typename Handler>
6554
constexpr const CharT* parse_width(const CharT* begin,
6555
                                   const CharT* end,
6556
                                   Handler&& handler)
6557
2.29M
{
6558
2.29M
    SCN_EXPECT(begin != end);
6559
6560
2.29M
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6561
41.4k
        int width = parse_simple_int(begin, end);
6562
41.4k
        if (SCN_LIKELY(width != -1)) {
6563
41.3k
            handler.on_width(width);
6564
41.3k
        }
6565
36
        else {
6566
36
            handler.on_error("Invalid field width");
6567
36
            return begin;
6568
36
        }
6569
41.4k
    }
6570
2.29M
    return begin;
6571
2.29M
}
impl.cpp:char const* scn::v3::detail::parse_width<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6557
953k
{
6558
953k
    SCN_EXPECT(begin != end);
6559
6560
953k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6561
18.5k
        int width = parse_simple_int(begin, end);
6562
18.5k
        if (SCN_LIKELY(width != -1)) {
6563
18.5k
            handler.on_width(width);
6564
18.5k
        }
6565
36
        else {
6566
36
            handler.on_error("Invalid field width");
6567
36
            return begin;
6568
36
        }
6569
18.5k
    }
6570
953k
    return begin;
6571
953k
}
impl.cpp:char const* scn::v3::detail::parse_width<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
Line
Count
Source
6557
850k
{
6558
850k
    SCN_EXPECT(begin != end);
6559
6560
850k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6561
2.92k
        int width = parse_simple_int(begin, end);
6562
2.92k
        if (SCN_LIKELY(width != -1)) {
6563
2.92k
            handler.on_width(width);
6564
2.92k
        }
6565
0
        else {
6566
0
            handler.on_error("Invalid field width");
6567
0
            return begin;
6568
0
        }
6569
2.92k
    }
6570
850k
    return begin;
6571
850k
}
impl.cpp:wchar_t const* scn::v3::detail::parse_width<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6557
254k
{
6558
254k
    SCN_EXPECT(begin != end);
6559
6560
254k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6561
14.0k
        int width = parse_simple_int(begin, end);
6562
14.0k
        if (SCN_LIKELY(width != -1)) {
6563
14.0k
            handler.on_width(width);
6564
14.0k
        }
6565
0
        else {
6566
0
            handler.on_error("Invalid field width");
6567
0
            return begin;
6568
0
        }
6569
14.0k
    }
6570
254k
    return begin;
6571
254k
}
impl.cpp:wchar_t const* scn::v3::detail::parse_width<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
Line
Count
Source
6557
236k
{
6558
236k
    SCN_EXPECT(begin != end);
6559
6560
236k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6561
5.84k
        int width = parse_simple_int(begin, end);
6562
5.84k
        if (SCN_LIKELY(width != -1)) {
6563
5.84k
            handler.on_width(width);
6564
5.84k
        }
6565
0
        else {
6566
0
            handler.on_error("Invalid field width");
6567
0
            return begin;
6568
0
        }
6569
5.84k
    }
6570
236k
    return begin;
6571
236k
}
6572
6573
template <typename CharT, typename Handler>
6574
constexpr const CharT* parse_precision(const CharT* begin,
6575
                                       const CharT* end,
6576
                                       Handler&& handler)
6577
11.1k
{
6578
11.1k
    SCN_EXPECT(begin != end);
6579
6580
11.1k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6581
10.4k
        int prec = parse_simple_int(begin, end);
6582
10.4k
        if (SCN_LIKELY(prec != -1)) {
6583
10.1k
            handler.on_precision(prec);
6584
10.1k
        }
6585
306
        else {
6586
306
            handler.on_error("Invalid field precision");
6587
306
            return begin;
6588
306
        }
6589
10.4k
    }
6590
10.8k
    return begin;
6591
11.1k
}
impl.cpp:char const* scn::v3::detail::parse_precision<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6577
10.7k
{
6578
10.7k
    SCN_EXPECT(begin != end);
6579
6580
10.7k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6581
10.3k
        int prec = parse_simple_int(begin, end);
6582
10.3k
        if (SCN_LIKELY(prec != -1)) {
6583
10.0k
            handler.on_precision(prec);
6584
10.0k
        }
6585
306
        else {
6586
306
            handler.on_error("Invalid field precision");
6587
306
            return begin;
6588
306
        }
6589
10.3k
    }
6590
10.4k
    return begin;
6591
10.7k
}
Unexecuted instantiation: impl.cpp:char const* scn::v3::detail::parse_precision<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
impl.cpp:wchar_t const* scn::v3::detail::parse_precision<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6577
408
{
6578
408
    SCN_EXPECT(begin != end);
6579
6580
408
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
6581
18
        int prec = parse_simple_int(begin, end);
6582
18
        if (SCN_LIKELY(prec != -1)) {
6583
18
            handler.on_precision(prec);
6584
18
        }
6585
0
        else {
6586
0
            handler.on_error("Invalid field precision");
6587
0
            return begin;
6588
0
        }
6589
18
    }
6590
408
    return begin;
6591
408
}
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v3::detail::parse_precision<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
6592
6593
template <typename CharT, typename SpecHandler>
6594
constexpr char32_t parse_presentation_set_code_point(const CharT*& begin,
6595
                                                     const CharT* end,
6596
                                                     SpecHandler&& handler)
6597
7.40M
{
6598
7.40M
    SCN_EXPECT(begin != end);
6599
6600
7.40M
    auto len = code_point_length_by_starting_code_unit(*begin);
6601
7.40M
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
6602
310
        handler.on_error("Invalid encoding in format string");
6603
310
        return invalid_code_point;
6604
310
    }
6605
6606
7.40M
    const auto cp =
6607
7.40M
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
6608
7.40M
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
6609
1.13k
        handler.on_error("Invalid encoding in format string");
6610
1.13k
        return invalid_code_point;
6611
1.13k
    }
6612
6613
7.40M
    begin += len;
6614
7.40M
    return cp;
6615
7.40M
}
char32_t scn::v3::detail::parse_presentation_set_code_point<char, scn::v3::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v3::impl::nonascii_specs_handler&)
Line
Count
Source
6597
1.82M
{
6598
1.82M
    SCN_EXPECT(begin != end);
6599
6600
1.82M
    auto len = code_point_length_by_starting_code_unit(*begin);
6601
1.82M
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
6602
0
        handler.on_error("Invalid encoding in format string");
6603
0
        return invalid_code_point;
6604
0
    }
6605
6606
1.82M
    const auto cp =
6607
1.82M
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
6608
1.82M
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
6609
0
        handler.on_error("Invalid encoding in format string");
6610
0
        return invalid_code_point;
6611
0
    }
6612
6613
1.82M
    begin += len;
6614
1.82M
    return cp;
6615
1.82M
}
Unexecuted instantiation: char32_t scn::v3::detail::parse_presentation_set_code_point<wchar_t, scn::v3::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v3::impl::nonascii_specs_handler&)
impl.cpp:char32_t scn::v3::detail::parse_presentation_set_code_point<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6597
5.52M
{
6598
5.52M
    SCN_EXPECT(begin != end);
6599
6600
5.52M
    auto len = code_point_length_by_starting_code_unit(*begin);
6601
5.52M
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
6602
310
        handler.on_error("Invalid encoding in format string");
6603
310
        return invalid_code_point;
6604
310
    }
6605
6606
5.52M
    const auto cp =
6607
5.52M
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
6608
5.52M
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
6609
608
        handler.on_error("Invalid encoding in format string");
6610
608
        return invalid_code_point;
6611
608
    }
6612
6613
5.52M
    begin += len;
6614
5.52M
    return cp;
6615
5.52M
}
impl.cpp:char32_t scn::v3::detail::parse_presentation_set_code_point<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
Line
Count
Source
6597
9.02k
{
6598
9.02k
    SCN_EXPECT(begin != end);
6599
6600
9.02k
    auto len = code_point_length_by_starting_code_unit(*begin);
6601
9.02k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
6602
0
        handler.on_error("Invalid encoding in format string");
6603
0
        return invalid_code_point;
6604
0
    }
6605
6606
9.02k
    const auto cp =
6607
9.02k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
6608
9.02k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
6609
0
        handler.on_error("Invalid encoding in format string");
6610
0
        return invalid_code_point;
6611
0
    }
6612
6613
9.02k
    begin += len;
6614
9.02k
    return cp;
6615
9.02k
}
impl.cpp:char32_t scn::v3::detail::parse_presentation_set_code_point<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6597
32.5k
{
6598
32.5k
    SCN_EXPECT(begin != end);
6599
6600
32.5k
    auto len = code_point_length_by_starting_code_unit(*begin);
6601
32.5k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
6602
0
        handler.on_error("Invalid encoding in format string");
6603
0
        return invalid_code_point;
6604
0
    }
6605
6606
32.5k
    const auto cp =
6607
32.5k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
6608
32.5k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
6609
526
        handler.on_error("Invalid encoding in format string");
6610
526
        return invalid_code_point;
6611
526
    }
6612
6613
31.9k
    begin += len;
6614
31.9k
    return cp;
6615
32.5k
}
impl.cpp:char32_t scn::v3::detail::parse_presentation_set_code_point<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
Line
Count
Source
6597
11.8k
{
6598
11.8k
    SCN_EXPECT(begin != end);
6599
6600
11.8k
    auto len = code_point_length_by_starting_code_unit(*begin);
6601
11.8k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
6602
0
        handler.on_error("Invalid encoding in format string");
6603
0
        return invalid_code_point;
6604
0
    }
6605
6606
11.8k
    const auto cp =
6607
11.8k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
6608
11.8k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
6609
0
        handler.on_error("Invalid encoding in format string");
6610
0
        return invalid_code_point;
6611
0
    }
6612
6613
11.8k
    begin += len;
6614
11.8k
    return cp;
6615
11.8k
}
6616
6617
template <typename CharT, typename SpecHandler>
6618
constexpr void parse_presentation_set_literal(const CharT*& begin,
6619
                                              const CharT* end,
6620
                                              SpecHandler&& handler)
6621
7.35M
{
6622
7.35M
    SCN_EXPECT(begin != end);
6623
6624
7.35M
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
6625
7.35M
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
6626
1.31k
        return;
6627
1.31k
    }
6628
6629
7.34M
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
6630
7.34M
        *(begin + 1) != CharT{']'}) {
6631
56.5k
        ++begin;
6632
6633
56.5k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
6634
56.5k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
6635
134
            return;
6636
134
        }
6637
6638
56.3k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
6639
            // clang-format off
6640
164
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
6641
            // clang-format on
6642
164
            return;
6643
164
        }
6644
6645
56.2k
        handler.on_charset_range(cp_first, cp_second + 1);
6646
56.2k
        return;
6647
56.3k
    }
6648
6649
7.29M
    handler.on_charset_single(cp_first);
6650
7.29M
}
void scn::v3::detail::parse_presentation_set_literal<char, scn::v3::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v3::impl::nonascii_specs_handler&)
Line
Count
Source
6621
1.82M
{
6622
1.82M
    SCN_EXPECT(begin != end);
6623
6624
1.82M
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
6625
1.82M
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
6626
0
        return;
6627
0
    }
6628
6629
1.82M
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
6630
1.82M
        *(begin + 1) != CharT{']'}) {
6631
5.84k
        ++begin;
6632
6633
5.84k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
6634
5.84k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
6635
0
            return;
6636
0
        }
6637
6638
5.84k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
6639
            // clang-format off
6640
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
6641
            // clang-format on
6642
0
            return;
6643
0
        }
6644
6645
5.84k
        handler.on_charset_range(cp_first, cp_second + 1);
6646
5.84k
        return;
6647
5.84k
    }
6648
6649
1.81M
    handler.on_charset_single(cp_first);
6650
1.81M
}
Unexecuted instantiation: void scn::v3::detail::parse_presentation_set_literal<wchar_t, scn::v3::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v3::impl::nonascii_specs_handler&)
impl.cpp:void scn::v3::detail::parse_presentation_set_literal<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6621
5.49M
{
6622
5.49M
    SCN_EXPECT(begin != end);
6623
6624
5.49M
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
6625
5.49M
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
6626
848
        return;
6627
848
    }
6628
6629
5.49M
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
6630
5.49M
        *(begin + 1) != CharT{']'}) {
6631
27.7k
        ++begin;
6632
6633
27.7k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
6634
27.7k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
6635
70
            return;
6636
70
        }
6637
6638
27.6k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
6639
            // clang-format off
6640
78
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
6641
            // clang-format on
6642
78
            return;
6643
78
        }
6644
6645
27.5k
        handler.on_charset_range(cp_first, cp_second + 1);
6646
27.5k
        return;
6647
27.6k
    }
6648
6649
5.46M
    handler.on_charset_single(cp_first);
6650
5.46M
}
impl.cpp:void scn::v3::detail::parse_presentation_set_literal<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
Line
Count
Source
6621
4.51k
{
6622
4.51k
    SCN_EXPECT(begin != end);
6623
6624
4.51k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
6625
4.51k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
6626
0
        return;
6627
0
    }
6628
6629
4.51k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
6630
4.51k
        *(begin + 1) != CharT{']'}) {
6631
4.51k
        ++begin;
6632
6633
4.51k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
6634
4.51k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
6635
0
            return;
6636
0
        }
6637
6638
4.51k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
6639
            // clang-format off
6640
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
6641
            // clang-format on
6642
0
            return;
6643
0
        }
6644
6645
4.51k
        handler.on_charset_range(cp_first, cp_second + 1);
6646
4.51k
        return;
6647
4.51k
    }
6648
6649
0
    handler.on_charset_single(cp_first);
6650
0
}
impl.cpp:void scn::v3::detail::parse_presentation_set_literal<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6621
19.9k
{
6622
19.9k
    SCN_EXPECT(begin != end);
6623
6624
19.9k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
6625
19.9k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
6626
462
        return;
6627
462
    }
6628
6629
19.5k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
6630
19.5k
        *(begin + 1) != CharT{']'}) {
6631
12.5k
        ++begin;
6632
6633
12.5k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
6634
12.5k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
6635
64
            return;
6636
64
        }
6637
6638
12.4k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
6639
            // clang-format off
6640
86
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
6641
            // clang-format on
6642
86
            return;
6643
86
        }
6644
6645
12.3k
        handler.on_charset_range(cp_first, cp_second + 1);
6646
12.3k
        return;
6647
12.4k
    }
6648
6649
6.99k
    handler.on_charset_single(cp_first);
6650
6.99k
}
impl.cpp:void scn::v3::detail::parse_presentation_set_literal<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
Line
Count
Source
6621
5.90k
{
6622
5.90k
    SCN_EXPECT(begin != end);
6623
6624
5.90k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
6625
5.90k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
6626
0
        return;
6627
0
    }
6628
6629
5.90k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
6630
5.90k
        *(begin + 1) != CharT{']'}) {
6631
5.90k
        ++begin;
6632
6633
5.90k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
6634
5.90k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
6635
0
            return;
6636
0
        }
6637
6638
5.90k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
6639
            // clang-format off
6640
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
6641
            // clang-format on
6642
0
            return;
6643
0
        }
6644
6645
5.90k
        handler.on_charset_range(cp_first, cp_second + 1);
6646
5.90k
        return;
6647
5.90k
    }
6648
6649
0
    handler.on_charset_single(cp_first);
6650
0
}
6651
6652
template <typename CharT, typename SpecHandler>
6653
constexpr std::basic_string_view<CharT> parse_presentation_set(
6654
    const CharT*& begin,
6655
    const CharT* end,
6656
    SpecHandler&& handler)
6657
52.7k
{
6658
52.7k
    SCN_EXPECT(begin != end);
6659
52.7k
    SCN_EXPECT(*begin == CharT{'['});
6660
6661
52.7k
    auto start = begin;
6662
52.7k
    ++begin;
6663
6664
52.7k
    if (SCN_UNLIKELY(begin == end)) {
6665
        // clang-format off
6666
72
        handler.on_error("Unexpected end of [character set] specifier in format string");
6667
        // clang-format on
6668
72
        return {};
6669
72
    }
6670
52.7k
    if (*begin == CharT{'^'}) {
6671
10.0k
        handler.on_charset_inverted();
6672
10.0k
        ++begin;
6673
10.0k
        if (SCN_UNLIKELY(begin == end)) {
6674
            // clang-format off
6675
62
            handler.on_error("Unexpected end of [character set] specifier in format string");
6676
            // clang-format on
6677
62
            return {};
6678
62
        }
6679
9.98k
        if (*begin == CharT{']'}) {
6680
84
            handler.on_charset_single(char32_t{']'});
6681
84
            ++begin;
6682
84
        }
6683
9.98k
    }
6684
42.6k
    else if (*begin == CharT{']'}) {
6685
36
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
6686
36
    }
6687
6688
7.40M
    while (begin != end) {
6689
7.40M
        if (SCN_UNLIKELY(!handler)) {
6690
1.62k
            break;
6691
1.62k
        }
6692
6693
7.40M
        if (*begin == CharT{']'}) {
6694
49.8k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
6695
49.8k
        }
6696
6697
7.35M
        parse_presentation_set_literal(begin, end, handler);
6698
7.35M
    }
6699
6700
2.78k
    SCN_UNLIKELY_ATTR
6701
2.78k
    handler.on_error("Invalid [character set] specifier in format string");
6702
2.78k
    return {};
6703
52.6k
}
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::parse_presentation_set<char, scn::v3::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v3::impl::nonascii_specs_handler&)
Line
Count
Source
6657
7.75k
{
6658
7.75k
    SCN_EXPECT(begin != end);
6659
7.75k
    SCN_EXPECT(*begin == CharT{'['});
6660
6661
7.75k
    auto start = begin;
6662
7.75k
    ++begin;
6663
6664
7.75k
    if (SCN_UNLIKELY(begin == end)) {
6665
        // clang-format off
6666
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
6667
        // clang-format on
6668
0
        return {};
6669
0
    }
6670
7.75k
    if (*begin == CharT{'^'}) {
6671
1.98k
        handler.on_charset_inverted();
6672
1.98k
        ++begin;
6673
1.98k
        if (SCN_UNLIKELY(begin == end)) {
6674
            // clang-format off
6675
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
6676
            // clang-format on
6677
0
            return {};
6678
0
        }
6679
1.98k
        if (*begin == CharT{']'}) {
6680
12
            handler.on_charset_single(char32_t{']'});
6681
12
            ++begin;
6682
12
        }
6683
1.98k
    }
6684
5.77k
    else if (*begin == CharT{']'}) {
6685
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
6686
0
    }
6687
6688
1.82M
    while (begin != end) {
6689
1.82M
        if (SCN_UNLIKELY(!handler)) {
6690
0
            break;
6691
0
        }
6692
6693
1.82M
        if (*begin == CharT{']'}) {
6694
7.75k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
6695
7.75k
        }
6696
6697
1.82M
        parse_presentation_set_literal(begin, end, handler);
6698
1.82M
    }
6699
6700
0
    SCN_UNLIKELY_ATTR
6701
0
    handler.on_error("Invalid [character set] specifier in format string");
6702
0
    return {};
6703
7.75k
}
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::parse_presentation_set<wchar_t, scn::v3::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v3::impl::nonascii_specs_handler&)
impl.cpp:std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::parse_presentation_set<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6657
32.8k
{
6658
32.8k
    SCN_EXPECT(begin != end);
6659
32.8k
    SCN_EXPECT(*begin == CharT{'['});
6660
6661
32.8k
    auto start = begin;
6662
32.8k
    ++begin;
6663
6664
32.8k
    if (SCN_UNLIKELY(begin == end)) {
6665
        // clang-format off
6666
44
        handler.on_error("Unexpected end of [character set] specifier in format string");
6667
        // clang-format on
6668
44
        return {};
6669
44
    }
6670
32.7k
    if (*begin == CharT{'^'}) {
6671
7.94k
        handler.on_charset_inverted();
6672
7.94k
        ++begin;
6673
7.94k
        if (SCN_UNLIKELY(begin == end)) {
6674
            // clang-format off
6675
36
            handler.on_error("Unexpected end of [character set] specifier in format string");
6676
            // clang-format on
6677
36
            return {};
6678
36
        }
6679
7.90k
        if (*begin == CharT{']'}) {
6680
72
            handler.on_charset_single(char32_t{']'});
6681
72
            ++begin;
6682
72
        }
6683
7.90k
    }
6684
24.8k
    else if (*begin == CharT{']'}) {
6685
36
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
6686
36
    }
6687
6688
5.53M
    while (begin != end) {
6689
5.53M
        if (SCN_UNLIKELY(!handler)) {
6690
1.01k
            break;
6691
1.01k
        }
6692
6693
5.52M
        if (*begin == CharT{']'}) {
6694
30.9k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
6695
30.9k
        }
6696
6697
5.49M
        parse_presentation_set_literal(begin, end, handler);
6698
5.49M
    }
6699
6700
1.78k
    SCN_UNLIKELY_ATTR
6701
1.78k
    handler.on_error("Invalid [character set] specifier in format string");
6702
1.78k
    return {};
6703
32.6k
}
impl.cpp:std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v3::detail::parse_presentation_set<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
Line
Count
Source
6657
2.25k
{
6658
2.25k
    SCN_EXPECT(begin != end);
6659
2.25k
    SCN_EXPECT(*begin == CharT{'['});
6660
6661
2.25k
    auto start = begin;
6662
2.25k
    ++begin;
6663
6664
2.25k
    if (SCN_UNLIKELY(begin == end)) {
6665
        // clang-format off
6666
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
6667
        // clang-format on
6668
0
        return {};
6669
0
    }
6670
2.25k
    if (*begin == CharT{'^'}) {
6671
0
        handler.on_charset_inverted();
6672
0
        ++begin;
6673
0
        if (SCN_UNLIKELY(begin == end)) {
6674
            // clang-format off
6675
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
6676
            // clang-format on
6677
0
            return {};
6678
0
        }
6679
0
        if (*begin == CharT{']'}) {
6680
0
            handler.on_charset_single(char32_t{']'});
6681
0
            ++begin;
6682
0
        }
6683
0
    }
6684
2.25k
    else if (*begin == CharT{']'}) {
6685
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
6686
0
    }
6687
6688
6.76k
    while (begin != end) {
6689
6.76k
        if (SCN_UNLIKELY(!handler)) {
6690
0
            break;
6691
0
        }
6692
6693
6.76k
        if (*begin == CharT{']'}) {
6694
2.25k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
6695
2.25k
        }
6696
6697
4.51k
        parse_presentation_set_literal(begin, end, handler);
6698
4.51k
    }
6699
6700
0
    SCN_UNLIKELY_ATTR
6701
0
    handler.on_error("Invalid [character set] specifier in format string");
6702
0
    return {};
6703
2.25k
}
impl.cpp:std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::parse_presentation_set<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6657
7.00k
{
6658
7.00k
    SCN_EXPECT(begin != end);
6659
7.00k
    SCN_EXPECT(*begin == CharT{'['});
6660
6661
7.00k
    auto start = begin;
6662
7.00k
    ++begin;
6663
6664
7.00k
    if (SCN_UNLIKELY(begin == end)) {
6665
        // clang-format off
6666
28
        handler.on_error("Unexpected end of [character set] specifier in format string");
6667
        // clang-format on
6668
28
        return {};
6669
28
    }
6670
6.97k
    if (*begin == CharT{'^'}) {
6671
118
        handler.on_charset_inverted();
6672
118
        ++begin;
6673
118
        if (SCN_UNLIKELY(begin == end)) {
6674
            // clang-format off
6675
26
            handler.on_error("Unexpected end of [character set] specifier in format string");
6676
            // clang-format on
6677
26
            return {};
6678
26
        }
6679
92
        if (*begin == CharT{']'}) {
6680
0
            handler.on_charset_single(char32_t{']'});
6681
0
            ++begin;
6682
0
        }
6683
92
    }
6684
6.85k
    else if (*begin == CharT{']'}) {
6685
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
6686
0
    }
6687
6688
26.9k
    while (begin != end) {
6689
26.5k
        if (SCN_UNLIKELY(!handler)) {
6690
612
            break;
6691
612
        }
6692
6693
25.9k
        if (*begin == CharT{']'}) {
6694
5.95k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
6695
5.95k
        }
6696
6697
19.9k
        parse_presentation_set_literal(begin, end, handler);
6698
19.9k
    }
6699
6700
996
    SCN_UNLIKELY_ATTR
6701
996
    handler.on_error("Invalid [character set] specifier in format string");
6702
996
    return {};
6703
6.95k
}
impl.cpp:std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v3::detail::parse_presentation_set<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
Line
Count
Source
6657
2.95k
{
6658
2.95k
    SCN_EXPECT(begin != end);
6659
2.95k
    SCN_EXPECT(*begin == CharT{'['});
6660
6661
2.95k
    auto start = begin;
6662
2.95k
    ++begin;
6663
6664
2.95k
    if (SCN_UNLIKELY(begin == end)) {
6665
        // clang-format off
6666
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
6667
        // clang-format on
6668
0
        return {};
6669
0
    }
6670
2.95k
    if (*begin == CharT{'^'}) {
6671
0
        handler.on_charset_inverted();
6672
0
        ++begin;
6673
0
        if (SCN_UNLIKELY(begin == end)) {
6674
            // clang-format off
6675
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
6676
            // clang-format on
6677
0
            return {};
6678
0
        }
6679
0
        if (*begin == CharT{']'}) {
6680
0
            handler.on_charset_single(char32_t{']'});
6681
0
            ++begin;
6682
0
        }
6683
0
    }
6684
2.95k
    else if (*begin == CharT{']'}) {
6685
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
6686
0
    }
6687
6688
8.86k
    while (begin != end) {
6689
8.86k
        if (SCN_UNLIKELY(!handler)) {
6690
0
            break;
6691
0
        }
6692
6693
8.86k
        if (*begin == CharT{']'}) {
6694
2.95k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
6695
2.95k
        }
6696
6697
5.90k
        parse_presentation_set_literal(begin, end, handler);
6698
5.90k
    }
6699
6700
0
    SCN_UNLIKELY_ATTR
6701
0
    handler.on_error("Invalid [character set] specifier in format string");
6702
0
    return {};
6703
2.95k
}
6704
6705
template <typename CharT, typename SpecHandler>
6706
constexpr const CharT* parse_presentation_regex(const CharT*& begin,
6707
                                                const CharT* end,
6708
                                                SpecHandler&& handler)
6709
54.4k
{
6710
54.4k
#if !SCN_DISABLE_REGEX
6711
54.4k
    SCN_EXPECT(begin != end);
6712
54.4k
    SCN_EXPECT(*begin == CharT{'/'});
6713
6714
54.4k
    if constexpr (!SCN_REGEX_SUPPORTS_WIDE_STRINGS &&
6715
54.4k
                  std::is_same_v<CharT, wchar_t>) {
6716
54.4k
        handler.on_error("Regex backend doesn't support wide strings as input");
6717
54.4k
        return begin;
6718
54.4k
    }
6719
6720
54.4k
    auto start = begin;
6721
54.4k
    ++begin;
6722
6723
54.4k
    if (SCN_UNLIKELY(begin == end)) {
6724
70
        handler.on_error("Unexpected end of regex in format string");
6725
70
        return begin;
6726
70
    }
6727
6728
54.3k
    handler.on_type(presentation_type::regex);
6729
17.4M
    for (; begin != end; ++begin) {
6730
17.4M
        if (*begin == CharT{'/'}) {
6731
80.9k
            if (*(begin - 1) != CharT{'\\'}) {
6732
53.4k
                break;
6733
53.4k
            }
6734
27.4k
            else {
6735
27.4k
                handler.on_type(presentation_type::regex_escaped);
6736
27.4k
            }
6737
80.9k
        }
6738
17.4M
    }
6739
54.3k
    if (SCN_UNLIKELY(begin == end)) {
6740
866
        handler.on_error("Unexpected end of regex in format string");
6741
866
        return begin;
6742
866
    }
6743
6744
53.4k
    auto regex_end = begin;
6745
53.4k
    auto regex_pattern = make_string_view_from_pointers(start + 1, regex_end);
6746
53.4k
    if (SCN_UNLIKELY(regex_pattern.empty())) {
6747
162
        handler.on_error("Invalid (empty) regex in format string");
6748
162
        return begin;
6749
162
    }
6750
53.3k
    handler.on_regex_pattern(regex_pattern);
6751
53.3k
    ++begin;
6752
6753
53.3k
    if (SCN_UNLIKELY(begin == end)) {
6754
68
        handler.on_error("Unexpected end of regex in format string");
6755
68
        return begin;
6756
68
    }
6757
6758
53.2k
    regex_flags flags{regex_flags::none};
6759
53.2k
    constexpr std::array<std::pair<char, regex_flags>, 4> flag_map{
6760
53.2k
        {{'m', regex_flags::multiline},
6761
53.2k
         {'s', regex_flags::singleline},
6762
53.2k
         {'i', regex_flags::nocase},
6763
53.2k
         {'n', regex_flags::nocapture}}};
6764
65.4k
    for (; begin != end; ++begin) {
6765
65.3k
        if (*begin == CharT{'}'}) {
6766
52.5k
            break;
6767
52.5k
        }
6768
12.8k
        bool found_flag = false;
6769
35.1k
        for (auto flag : flag_map) {
6770
35.1k
            if (static_cast<CharT>(flag.first) != *begin) {
6771
22.9k
                continue;
6772
22.9k
            }
6773
12.1k
            if ((flags & flag.second) != regex_flags::none) {
6774
36
                handler.on_error("Flag set multiple times in regex");
6775
36
                return begin;
6776
36
            }
6777
12.1k
#if SCN_REGEX_BACKEND == SCN_REGEX_BACKEND_STD
6778
12.1k
            if (*begin == CharT{'s'}) {
6779
                // clang-format off
6780
54
                handler.on_error("/s flag for regex isn't supported by regex backend");
6781
                // clang-format on
6782
54
            }
6783
#if !SCN_HAS_STD_REGEX_MULTILINE
6784
            if (*begin == CharT{'m'}) {
6785
                // clang-format off
6786
                handler.on_error("/m flag for regex isn't supported by regex backend");
6787
                // clang-format on
6788
            }
6789
#endif
6790
12.1k
#endif
6791
12.1k
            flags |= flag.second;
6792
12.1k
            found_flag = true;
6793
12.1k
            break;
6794
12.1k
        }
6795
12.7k
        if (!found_flag) {
6796
630
            handler.on_error("Invalid flag in regex");
6797
630
            return begin;
6798
630
        }
6799
12.7k
    }
6800
52.5k
    handler.on_regex_flags(flags);
6801
6802
52.5k
    if (SCN_UNLIKELY(begin == end)) {
6803
62
        handler.on_error("Unexpected end of regex in format string");
6804
62
        return begin;
6805
62
    }
6806
6807
52.5k
    return begin;
6808
#else
6809
    handler.on_error("Regular expression support is disabled");
6810
    return {};
6811
#endif
6812
52.5k
}
impl.cpp:char const* scn::v3::detail::parse_presentation_regex<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6709
53.9k
{
6710
53.9k
#if !SCN_DISABLE_REGEX
6711
53.9k
    SCN_EXPECT(begin != end);
6712
53.9k
    SCN_EXPECT(*begin == CharT{'/'});
6713
6714
53.9k
    if constexpr (!SCN_REGEX_SUPPORTS_WIDE_STRINGS &&
6715
53.9k
                  std::is_same_v<CharT, wchar_t>) {
6716
53.9k
        handler.on_error("Regex backend doesn't support wide strings as input");
6717
53.9k
        return begin;
6718
53.9k
    }
6719
6720
53.9k
    auto start = begin;
6721
53.9k
    ++begin;
6722
6723
53.9k
    if (SCN_UNLIKELY(begin == end)) {
6724
42
        handler.on_error("Unexpected end of regex in format string");
6725
42
        return begin;
6726
42
    }
6727
6728
53.8k
    handler.on_type(presentation_type::regex);
6729
17.4M
    for (; begin != end; ++begin) {
6730
17.4M
        if (*begin == CharT{'/'}) {
6731
80.8k
            if (*(begin - 1) != CharT{'\\'}) {
6732
53.4k
                break;
6733
53.4k
            }
6734
27.4k
            else {
6735
27.4k
                handler.on_type(presentation_type::regex_escaped);
6736
27.4k
            }
6737
80.8k
        }
6738
17.4M
    }
6739
53.8k
    if (SCN_UNLIKELY(begin == end)) {
6740
460
        handler.on_error("Unexpected end of regex in format string");
6741
460
        return begin;
6742
460
    }
6743
6744
53.4k
    auto regex_end = begin;
6745
53.4k
    auto regex_pattern = make_string_view_from_pointers(start + 1, regex_end);
6746
53.4k
    if (SCN_UNLIKELY(regex_pattern.empty())) {
6747
144
        handler.on_error("Invalid (empty) regex in format string");
6748
144
        return begin;
6749
144
    }
6750
53.2k
    handler.on_regex_pattern(regex_pattern);
6751
53.2k
    ++begin;
6752
6753
53.2k
    if (SCN_UNLIKELY(begin == end)) {
6754
50
        handler.on_error("Unexpected end of regex in format string");
6755
50
        return begin;
6756
50
    }
6757
6758
53.2k
    regex_flags flags{regex_flags::none};
6759
53.2k
    constexpr std::array<std::pair<char, regex_flags>, 4> flag_map{
6760
53.2k
        {{'m', regex_flags::multiline},
6761
53.2k
         {'s', regex_flags::singleline},
6762
53.2k
         {'i', regex_flags::nocase},
6763
53.2k
         {'n', regex_flags::nocapture}}};
6764
65.3k
    for (; begin != end; ++begin) {
6765
65.3k
        if (*begin == CharT{'}'}) {
6766
52.5k
            break;
6767
52.5k
        }
6768
12.7k
        bool found_flag = false;
6769
35.0k
        for (auto flag : flag_map) {
6770
35.0k
            if (static_cast<CharT>(flag.first) != *begin) {
6771
22.8k
                continue;
6772
22.8k
            }
6773
12.1k
            if ((flags & flag.second) != regex_flags::none) {
6774
36
                handler.on_error("Flag set multiple times in regex");
6775
36
                return begin;
6776
36
            }
6777
12.1k
#if SCN_REGEX_BACKEND == SCN_REGEX_BACKEND_STD
6778
12.1k
            if (*begin == CharT{'s'}) {
6779
                // clang-format off
6780
54
                handler.on_error("/s flag for regex isn't supported by regex backend");
6781
                // clang-format on
6782
54
            }
6783
#if !SCN_HAS_STD_REGEX_MULTILINE
6784
            if (*begin == CharT{'m'}) {
6785
                // clang-format off
6786
                handler.on_error("/m flag for regex isn't supported by regex backend");
6787
                // clang-format on
6788
            }
6789
#endif
6790
12.1k
#endif
6791
12.1k
            flags |= flag.second;
6792
12.1k
            found_flag = true;
6793
12.1k
            break;
6794
12.1k
        }
6795
12.7k
        if (!found_flag) {
6796
610
            handler.on_error("Invalid flag in regex");
6797
610
            return begin;
6798
610
        }
6799
12.7k
    }
6800
52.5k
    handler.on_regex_flags(flags);
6801
6802
52.5k
    if (SCN_UNLIKELY(begin == end)) {
6803
62
        handler.on_error("Unexpected end of regex in format string");
6804
62
        return begin;
6805
62
    }
6806
6807
52.5k
    return begin;
6808
#else
6809
    handler.on_error("Regular expression support is disabled");
6810
    return {};
6811
#endif
6812
52.5k
}
Unexecuted instantiation: impl.cpp:char const* scn::v3::detail::parse_presentation_regex<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*&, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
impl.cpp:wchar_t const* scn::v3::detail::parse_presentation_regex<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6709
490
{
6710
490
#if !SCN_DISABLE_REGEX
6711
490
    SCN_EXPECT(begin != end);
6712
490
    SCN_EXPECT(*begin == CharT{'/'});
6713
6714
490
    if constexpr (!SCN_REGEX_SUPPORTS_WIDE_STRINGS &&
6715
490
                  std::is_same_v<CharT, wchar_t>) {
6716
490
        handler.on_error("Regex backend doesn't support wide strings as input");
6717
490
        return begin;
6718
490
    }
6719
6720
490
    auto start = begin;
6721
490
    ++begin;
6722
6723
490
    if (SCN_UNLIKELY(begin == end)) {
6724
28
        handler.on_error("Unexpected end of regex in format string");
6725
28
        return begin;
6726
28
    }
6727
6728
462
    handler.on_type(presentation_type::regex);
6729
8.67k
    for (; begin != end; ++begin) {
6730
8.27k
        if (*begin == CharT{'/'}) {
6731
56
            if (*(begin - 1) != CharT{'\\'}) {
6732
56
                break;
6733
56
            }
6734
0
            else {
6735
0
                handler.on_type(presentation_type::regex_escaped);
6736
0
            }
6737
56
        }
6738
8.27k
    }
6739
462
    if (SCN_UNLIKELY(begin == end)) {
6740
406
        handler.on_error("Unexpected end of regex in format string");
6741
406
        return begin;
6742
406
    }
6743
6744
56
    auto regex_end = begin;
6745
56
    auto regex_pattern = make_string_view_from_pointers(start + 1, regex_end);
6746
56
    if (SCN_UNLIKELY(regex_pattern.empty())) {
6747
18
        handler.on_error("Invalid (empty) regex in format string");
6748
18
        return begin;
6749
18
    }
6750
38
    handler.on_regex_pattern(regex_pattern);
6751
38
    ++begin;
6752
6753
38
    if (SCN_UNLIKELY(begin == end)) {
6754
18
        handler.on_error("Unexpected end of regex in format string");
6755
18
        return begin;
6756
18
    }
6757
6758
20
    regex_flags flags{regex_flags::none};
6759
20
    constexpr std::array<std::pair<char, regex_flags>, 4> flag_map{
6760
20
        {{'m', regex_flags::multiline},
6761
20
         {'s', regex_flags::singleline},
6762
20
         {'i', regex_flags::nocase},
6763
20
         {'n', regex_flags::nocapture}}};
6764
20
    for (; begin != end; ++begin) {
6765
20
        if (*begin == CharT{'}'}) {
6766
0
            break;
6767
0
        }
6768
20
        bool found_flag = false;
6769
80
        for (auto flag : flag_map) {
6770
80
            if (static_cast<CharT>(flag.first) != *begin) {
6771
80
                continue;
6772
80
            }
6773
0
            if ((flags & flag.second) != regex_flags::none) {
6774
0
                handler.on_error("Flag set multiple times in regex");
6775
0
                return begin;
6776
0
            }
6777
0
#if SCN_REGEX_BACKEND == SCN_REGEX_BACKEND_STD
6778
0
            if (*begin == CharT{'s'}) {
6779
                // clang-format off
6780
0
                handler.on_error("/s flag for regex isn't supported by regex backend");
6781
                // clang-format on
6782
0
            }
6783
#if !SCN_HAS_STD_REGEX_MULTILINE
6784
            if (*begin == CharT{'m'}) {
6785
                // clang-format off
6786
                handler.on_error("/m flag for regex isn't supported by regex backend");
6787
                // clang-format on
6788
            }
6789
#endif
6790
0
#endif
6791
0
            flags |= flag.second;
6792
0
            found_flag = true;
6793
0
            break;
6794
0
        }
6795
20
        if (!found_flag) {
6796
20
            handler.on_error("Invalid flag in regex");
6797
20
            return begin;
6798
20
        }
6799
20
    }
6800
0
    handler.on_regex_flags(flags);
6801
6802
0
    if (SCN_UNLIKELY(begin == end)) {
6803
0
        handler.on_error("Unexpected end of regex in format string");
6804
0
        return begin;
6805
0
    }
6806
6807
0
    return begin;
6808
#else
6809
    handler.on_error("Regular expression support is disabled");
6810
    return {};
6811
#endif
6812
0
}
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v3::detail::parse_presentation_regex<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
6813
6814
template <typename CharT, typename SpecHandler>
6815
constexpr const CharT* parse_format_specs(const CharT* begin,
6816
                                          const CharT* end,
6817
                                          SpecHandler&& handler)
6818
30.1M
{
6819
30.1M
    auto do_presentation = [&]() -> const CharT* {
6820
28.4M
        if (*begin == CharT{'['}) {
6821
45.0k
            auto set = parse_presentation_set(begin, end, handler);
6822
45.0k
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
2.95k
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
2.95k
                return begin;
6827
2.95k
            }
6828
42.0k
            handler.on_character_set_string(set);
6829
42.0k
            return begin;
6830
45.0k
        }
6831
28.3M
        if (*begin == CharT{'/'}) {
6832
54.4k
            return parse_presentation_regex(begin, end, handler);
6833
54.4k
        }
6834
28.3M
        presentation_type type = parse_presentation_type(*begin++);
6835
28.3M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
295k
            handler.on_error("Invalid type specifier in format string");
6837
295k
            return begin;
6838
295k
        }
6839
28.0M
        handler.on_type(type);
6840
28.0M
        return begin;
6841
28.3M
    };
impl.cpp:scn::v3::detail::parse_format_specs<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
6819
2.75M
    auto do_presentation = [&]() -> const CharT* {
6820
2.75M
        if (*begin == CharT{'['}) {
6821
32.8k
            auto set = parse_presentation_set(begin, end, handler);
6822
32.8k
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
1.90k
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
1.90k
                return begin;
6827
1.90k
            }
6828
30.9k
            handler.on_character_set_string(set);
6829
30.9k
            return begin;
6830
32.8k
        }
6831
2.71M
        if (*begin == CharT{'/'}) {
6832
53.9k
            return parse_presentation_regex(begin, end, handler);
6833
53.9k
        }
6834
2.66M
        presentation_type type = parse_presentation_type(*begin++);
6835
2.66M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
51.4k
            handler.on_error("Invalid type specifier in format string");
6837
51.4k
            return begin;
6838
51.4k
        }
6839
2.61M
        handler.on_type(type);
6840
2.61M
        return begin;
6841
2.66M
    };
impl.cpp:scn::v3::detail::parse_format_specs<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
6819
2.61M
    auto do_presentation = [&]() -> const CharT* {
6820
2.61M
        if (*begin == CharT{'['}) {
6821
2.25k
            auto set = parse_presentation_set(begin, end, handler);
6822
2.25k
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
0
                return begin;
6827
0
            }
6828
2.25k
            handler.on_character_set_string(set);
6829
2.25k
            return begin;
6830
2.25k
        }
6831
2.61M
        if (*begin == CharT{'/'}) {
6832
0
            return parse_presentation_regex(begin, end, handler);
6833
0
        }
6834
2.61M
        presentation_type type = parse_presentation_type(*begin++);
6835
2.61M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
48.1k
            handler.on_error("Invalid type specifier in format string");
6837
48.1k
            return begin;
6838
48.1k
        }
6839
2.56M
        handler.on_type(type);
6840
2.56M
        return begin;
6841
2.61M
    };
impl.cpp:scn::v3::detail::parse_format_specs<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
6819
15.1M
    auto do_presentation = [&]() -> const CharT* {
6820
15.1M
        if (*begin == CharT{'['}) {
6821
7.00k
            auto set = parse_presentation_set(begin, end, handler);
6822
7.00k
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
1.05k
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
1.05k
                return begin;
6827
1.05k
            }
6828
5.95k
            handler.on_character_set_string(set);
6829
5.95k
            return begin;
6830
7.00k
        }
6831
15.1M
        if (*begin == CharT{'/'}) {
6832
490
            return parse_presentation_regex(begin, end, handler);
6833
490
        }
6834
15.1M
        presentation_type type = parse_presentation_type(*begin++);
6835
15.1M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
99.9k
            handler.on_error("Invalid type specifier in format string");
6837
99.9k
            return begin;
6838
99.9k
        }
6839
15.0M
        handler.on_type(type);
6840
15.0M
        return begin;
6841
15.1M
    };
impl.cpp:scn::v3::detail::parse_format_specs<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
6819
7.85M
    auto do_presentation = [&]() -> const CharT* {
6820
7.85M
        if (*begin == CharT{'['}) {
6821
2.95k
            auto set = parse_presentation_set(begin, end, handler);
6822
2.95k
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
0
                return begin;
6827
0
            }
6828
2.95k
            handler.on_character_set_string(set);
6829
2.95k
            return begin;
6830
2.95k
        }
6831
7.84M
        if (*begin == CharT{'/'}) {
6832
0
            return parse_presentation_regex(begin, end, handler);
6833
0
        }
6834
7.84M
        presentation_type type = parse_presentation_type(*begin++);
6835
7.84M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
96.3k
            handler.on_error("Invalid type specifier in format string");
6837
96.3k
            return begin;
6838
96.3k
        }
6839
7.75M
        handler.on_type(type);
6840
7.75M
        return begin;
6841
7.84M
    };
6842
6843
30.1M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
6844
30.1M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
6845
27.8M
        return do_presentation();
6846
27.8M
    }
6847
6848
2.29M
    if (SCN_UNLIKELY(begin == end)) {
6849
0
        handler.on_error("Unexpected end of format string");
6850
0
        return begin;
6851
0
    }
6852
6853
2.29M
    begin = parse_align(begin, end, handler);
6854
2.29M
    if (SCN_UNLIKELY(begin == end)) {
6855
328
        handler.on_error("Unexpected end of format string");
6856
328
        return begin;
6857
328
    }
6858
6859
2.29M
    begin = parse_width(begin, end, handler);
6860
2.29M
    if (SCN_UNLIKELY(begin == end)) {
6861
180
        handler.on_error("Unexpected end of format string");
6862
180
        return begin;
6863
180
    }
6864
6865
2.29M
    if (*begin == CharT{'.'}) {
6866
11.2k
        ++begin;
6867
11.2k
        if (SCN_UNLIKELY(begin == end)) {
6868
116
            handler.on_error("Unexpected end of format string");
6869
116
            return begin;
6870
116
        }
6871
11.1k
        begin = parse_precision(begin, end, handler);
6872
11.1k
        if (SCN_UNLIKELY(begin == end)) {
6873
84
            handler.on_error("Unexpected end of format string");
6874
84
            return begin;
6875
84
        }
6876
11.1k
    }
6877
6878
2.29M
    if (*begin == CharT{'L'}) {
6879
1.72M
        handler.on_localized();
6880
1.72M
        ++begin;
6881
1.72M
    }
6882
2.29M
    if (SCN_UNLIKELY(begin == end)) {
6883
90
        handler.on_error("Unexpected end of format string");
6884
90
        return begin;
6885
90
    }
6886
6887
2.29M
    if (begin != end && *begin != CharT{'}'}) {
6888
555k
        do_presentation();
6889
555k
    }
6890
2.29M
    if (SCN_UNLIKELY(begin == end)) {
6891
4.06k
        handler.on_error("Unexpected end of format string");
6892
4.06k
        return begin;
6893
4.06k
    }
6894
6895
2.28M
    return begin;
6896
2.29M
}
impl.cpp:char const* scn::v3::detail::parse_format_specs<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >&)
Line
Count
Source
6818
3.53M
{
6819
3.53M
    auto do_presentation = [&]() -> const CharT* {
6820
3.53M
        if (*begin == CharT{'['}) {
6821
3.53M
            auto set = parse_presentation_set(begin, end, handler);
6822
3.53M
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
3.53M
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
3.53M
                return begin;
6827
3.53M
            }
6828
3.53M
            handler.on_character_set_string(set);
6829
3.53M
            return begin;
6830
3.53M
        }
6831
3.53M
        if (*begin == CharT{'/'}) {
6832
3.53M
            return parse_presentation_regex(begin, end, handler);
6833
3.53M
        }
6834
3.53M
        presentation_type type = parse_presentation_type(*begin++);
6835
3.53M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
3.53M
            handler.on_error("Invalid type specifier in format string");
6837
3.53M
            return begin;
6838
3.53M
        }
6839
3.53M
        handler.on_type(type);
6840
3.53M
        return begin;
6841
3.53M
    };
6842
6843
3.53M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
6844
3.53M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
6845
2.58M
        return do_presentation();
6846
2.58M
    }
6847
6848
953k
    if (SCN_UNLIKELY(begin == end)) {
6849
0
        handler.on_error("Unexpected end of format string");
6850
0
        return begin;
6851
0
    }
6852
6853
953k
    begin = parse_align(begin, end, handler);
6854
953k
    if (SCN_UNLIKELY(begin == end)) {
6855
156
        handler.on_error("Unexpected end of format string");
6856
156
        return begin;
6857
156
    }
6858
6859
953k
    begin = parse_width(begin, end, handler);
6860
953k
    if (SCN_UNLIKELY(begin == end)) {
6861
144
        handler.on_error("Unexpected end of format string");
6862
144
        return begin;
6863
144
    }
6864
6865
953k
    if (*begin == CharT{'.'}) {
6866
10.8k
        ++begin;
6867
10.8k
        if (SCN_UNLIKELY(begin == end)) {
6868
90
            handler.on_error("Unexpected end of format string");
6869
90
            return begin;
6870
90
        }
6871
10.7k
        begin = parse_precision(begin, end, handler);
6872
10.7k
        if (SCN_UNLIKELY(begin == end)) {
6873
84
            handler.on_error("Unexpected end of format string");
6874
84
            return begin;
6875
84
        }
6876
10.7k
    }
6877
6878
953k
    if (*begin == CharT{'L'}) {
6879
771k
        handler.on_localized();
6880
771k
        ++begin;
6881
771k
    }
6882
953k
    if (SCN_UNLIKELY(begin == end)) {
6883
72
        handler.on_error("Unexpected end of format string");
6884
72
        return begin;
6885
72
    }
6886
6887
953k
    if (begin != end && *begin != CharT{'}'}) {
6888
169k
        do_presentation();
6889
169k
    }
6890
953k
    if (SCN_UNLIKELY(begin == end)) {
6891
2.61k
        handler.on_error("Unexpected end of format string");
6892
2.61k
        return begin;
6893
2.61k
    }
6894
6895
950k
    return begin;
6896
953k
}
impl.cpp:char const* scn::v3::detail::parse_format_specs<char, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&>(char const*, char const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >&)
Line
Count
Source
6818
3.39M
{
6819
3.39M
    auto do_presentation = [&]() -> const CharT* {
6820
3.39M
        if (*begin == CharT{'['}) {
6821
3.39M
            auto set = parse_presentation_set(begin, end, handler);
6822
3.39M
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
3.39M
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
3.39M
                return begin;
6827
3.39M
            }
6828
3.39M
            handler.on_character_set_string(set);
6829
3.39M
            return begin;
6830
3.39M
        }
6831
3.39M
        if (*begin == CharT{'/'}) {
6832
3.39M
            return parse_presentation_regex(begin, end, handler);
6833
3.39M
        }
6834
3.39M
        presentation_type type = parse_presentation_type(*begin++);
6835
3.39M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
3.39M
            handler.on_error("Invalid type specifier in format string");
6837
3.39M
            return begin;
6838
3.39M
        }
6839
3.39M
        handler.on_type(type);
6840
3.39M
        return begin;
6841
3.39M
    };
6842
6843
3.39M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
6844
3.39M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
6845
2.53M
        return do_presentation();
6846
2.53M
    }
6847
6848
850k
    if (SCN_UNLIKELY(begin == end)) {
6849
0
        handler.on_error("Unexpected end of format string");
6850
0
        return begin;
6851
0
    }
6852
6853
850k
    begin = parse_align(begin, end, handler);
6854
850k
    if (SCN_UNLIKELY(begin == end)) {
6855
0
        handler.on_error("Unexpected end of format string");
6856
0
        return begin;
6857
0
    }
6858
6859
850k
    begin = parse_width(begin, end, handler);
6860
850k
    if (SCN_UNLIKELY(begin == end)) {
6861
0
        handler.on_error("Unexpected end of format string");
6862
0
        return begin;
6863
0
    }
6864
6865
850k
    if (*begin == CharT{'.'}) {
6866
0
        ++begin;
6867
0
        if (SCN_UNLIKELY(begin == end)) {
6868
0
            handler.on_error("Unexpected end of format string");
6869
0
            return begin;
6870
0
        }
6871
0
        begin = parse_precision(begin, end, handler);
6872
0
        if (SCN_UNLIKELY(begin == end)) {
6873
0
            handler.on_error("Unexpected end of format string");
6874
0
            return begin;
6875
0
        }
6876
0
    }
6877
6878
850k
    if (*begin == CharT{'L'}) {
6879
775k
        handler.on_localized();
6880
775k
        ++begin;
6881
775k
    }
6882
850k
    if (SCN_UNLIKELY(begin == end)) {
6883
0
        handler.on_error("Unexpected end of format string");
6884
0
        return begin;
6885
0
    }
6886
6887
850k
    if (begin != end && *begin != CharT{'}'}) {
6888
75.2k
        do_presentation();
6889
75.2k
    }
6890
850k
    if (SCN_UNLIKELY(begin == end)) {
6891
0
        handler.on_error("Unexpected end of format string");
6892
0
        return begin;
6893
0
    }
6894
6895
850k
    return begin;
6896
850k
}
impl.cpp:wchar_t const* scn::v3::detail::parse_format_specs<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >&)
Line
Count
Source
6818
15.2M
{
6819
15.2M
    auto do_presentation = [&]() -> const CharT* {
6820
15.2M
        if (*begin == CharT{'['}) {
6821
15.2M
            auto set = parse_presentation_set(begin, end, handler);
6822
15.2M
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
15.2M
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
15.2M
                return begin;
6827
15.2M
            }
6828
15.2M
            handler.on_character_set_string(set);
6829
15.2M
            return begin;
6830
15.2M
        }
6831
15.2M
        if (*begin == CharT{'/'}) {
6832
15.2M
            return parse_presentation_regex(begin, end, handler);
6833
15.2M
        }
6834
15.2M
        presentation_type type = parse_presentation_type(*begin++);
6835
15.2M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
15.2M
            handler.on_error("Invalid type specifier in format string");
6837
15.2M
            return begin;
6838
15.2M
        }
6839
15.2M
        handler.on_type(type);
6840
15.2M
        return begin;
6841
15.2M
    };
6842
6843
15.2M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
6844
15.2M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
6845
15.0M
        return do_presentation();
6846
15.0M
    }
6847
6848
254k
    if (SCN_UNLIKELY(begin == end)) {
6849
0
        handler.on_error("Unexpected end of format string");
6850
0
        return begin;
6851
0
    }
6852
6853
254k
    begin = parse_align(begin, end, handler);
6854
254k
    if (SCN_UNLIKELY(begin == end)) {
6855
172
        handler.on_error("Unexpected end of format string");
6856
172
        return begin;
6857
172
    }
6858
6859
254k
    begin = parse_width(begin, end, handler);
6860
254k
    if (SCN_UNLIKELY(begin == end)) {
6861
36
        handler.on_error("Unexpected end of format string");
6862
36
        return begin;
6863
36
    }
6864
6865
254k
    if (*begin == CharT{'.'}) {
6866
434
        ++begin;
6867
434
        if (SCN_UNLIKELY(begin == end)) {
6868
26
            handler.on_error("Unexpected end of format string");
6869
26
            return begin;
6870
26
        }
6871
408
        begin = parse_precision(begin, end, handler);
6872
408
        if (SCN_UNLIKELY(begin == end)) {
6873
0
            handler.on_error("Unexpected end of format string");
6874
0
            return begin;
6875
0
        }
6876
408
    }
6877
6878
254k
    if (*begin == CharT{'L'}) {
6879
90.3k
        handler.on_localized();
6880
90.3k
        ++begin;
6881
90.3k
    }
6882
254k
    if (SCN_UNLIKELY(begin == end)) {
6883
18
        handler.on_error("Unexpected end of format string");
6884
18
        return begin;
6885
18
    }
6886
6887
254k
    if (begin != end && *begin != CharT{'}'}) {
6888
161k
        do_presentation();
6889
161k
    }
6890
254k
    if (SCN_UNLIKELY(begin == end)) {
6891
1.44k
        handler.on_error("Unexpected end of format string");
6892
1.44k
        return begin;
6893
1.44k
    }
6894
6895
252k
    return begin;
6896
254k
}
impl.cpp:wchar_t const* scn::v3::detail::parse_format_specs<wchar_t, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >&)
Line
Count
Source
6818
7.93M
{
6819
7.93M
    auto do_presentation = [&]() -> const CharT* {
6820
7.93M
        if (*begin == CharT{'['}) {
6821
7.93M
            auto set = parse_presentation_set(begin, end, handler);
6822
7.93M
            if (SCN_UNLIKELY(set.size() <= 2)) {
6823
                // clang-format off
6824
7.93M
                handler.on_error("Invalid (empty) [character set] specifier in format string");
6825
                // clang-format on
6826
7.93M
                return begin;
6827
7.93M
            }
6828
7.93M
            handler.on_character_set_string(set);
6829
7.93M
            return begin;
6830
7.93M
        }
6831
7.93M
        if (*begin == CharT{'/'}) {
6832
7.93M
            return parse_presentation_regex(begin, end, handler);
6833
7.93M
        }
6834
7.93M
        presentation_type type = parse_presentation_type(*begin++);
6835
7.93M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
6836
7.93M
            handler.on_error("Invalid type specifier in format string");
6837
7.93M
            return begin;
6838
7.93M
        }
6839
7.93M
        handler.on_type(type);
6840
7.93M
        return begin;
6841
7.93M
    };
6842
6843
7.93M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
6844
7.93M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
6845
7.70M
        return do_presentation();
6846
7.70M
    }
6847
6848
236k
    if (SCN_UNLIKELY(begin == end)) {
6849
0
        handler.on_error("Unexpected end of format string");
6850
0
        return begin;
6851
0
    }
6852
6853
236k
    begin = parse_align(begin, end, handler);
6854
236k
    if (SCN_UNLIKELY(begin == end)) {
6855
0
        handler.on_error("Unexpected end of format string");
6856
0
        return begin;
6857
0
    }
6858
6859
236k
    begin = parse_width(begin, end, handler);
6860
236k
    if (SCN_UNLIKELY(begin == end)) {
6861
0
        handler.on_error("Unexpected end of format string");
6862
0
        return begin;
6863
0
    }
6864
6865
236k
    if (*begin == CharT{'.'}) {
6866
0
        ++begin;
6867
0
        if (SCN_UNLIKELY(begin == end)) {
6868
0
            handler.on_error("Unexpected end of format string");
6869
0
            return begin;
6870
0
        }
6871
0
        begin = parse_precision(begin, end, handler);
6872
0
        if (SCN_UNLIKELY(begin == end)) {
6873
0
            handler.on_error("Unexpected end of format string");
6874
0
            return begin;
6875
0
        }
6876
0
    }
6877
6878
236k
    if (*begin == CharT{'L'}) {
6879
87.2k
        handler.on_localized();
6880
87.2k
        ++begin;
6881
87.2k
    }
6882
236k
    if (SCN_UNLIKELY(begin == end)) {
6883
0
        handler.on_error("Unexpected end of format string");
6884
0
        return begin;
6885
0
    }
6886
6887
236k
    if (begin != end && *begin != CharT{'}'}) {
6888
148k
        do_presentation();
6889
148k
    }
6890
236k
    if (SCN_UNLIKELY(begin == end)) {
6891
0
        handler.on_error("Unexpected end of format string");
6892
0
        return begin;
6893
0
    }
6894
6895
236k
    return begin;
6896
236k
}
6897
6898
template <typename CharT, typename Handler>
6899
constexpr const CharT* parse_replacement_field(const CharT* begin,
6900
                                               const CharT* end,
6901
                                               Handler& handler)
6902
30.1M
{
6903
30.1M
    struct id_adapter {
6904
30.1M
        constexpr void operator()()
6905
30.1M
        {
6906
30.1M
            arg_id = handler.on_arg_id();
6907
30.1M
        }
impl.cpp:scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&)::id_adapter::operator()()
Line
Count
Source
6905
3.52M
        {
6906
3.52M
            arg_id = handler.on_arg_id();
6907
3.52M
        }
impl.cpp:scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&)::id_adapter::operator()()
Line
Count
Source
6905
3.39M
        {
6906
3.39M
            arg_id = handler.on_arg_id();
6907
3.39M
        }
impl.cpp:scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::operator()()
Line
Count
Source
6905
15.2M
        {
6906
15.2M
            arg_id = handler.on_arg_id();
6907
15.2M
        }
impl.cpp:scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::operator()()
Line
Count
Source
6905
7.93M
        {
6906
7.93M
            arg_id = handler.on_arg_id();
6907
7.93M
        }
6908
30.1M
        constexpr void operator()(std::size_t id)
6909
30.1M
        {
6910
5.95k
            arg_id = handler.on_arg_id(id);
6911
5.95k
        }
impl.cpp:scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&)::id_adapter::operator()(unsigned long)
Line
Count
Source
6909
5.74k
        {
6910
5.74k
            arg_id = handler.on_arg_id(id);
6911
5.74k
        }
Unexecuted instantiation: impl.cpp:scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&)::id_adapter::operator()(unsigned long)
impl.cpp:scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::operator()(unsigned long)
Line
Count
Source
6909
216
        {
6910
216
            arg_id = handler.on_arg_id(id);
6911
216
        }
Unexecuted instantiation: impl.cpp:scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::operator()(unsigned long)
6912
6913
30.1M
        constexpr void on_error(const char* msg)
6914
30.1M
        {
6915
14.6k
            SCN_UNLIKELY_ATTR
6916
14.6k
            handler.on_error(msg);
6917
14.6k
        }
impl.cpp:scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&)::id_adapter::on_error(char const*)
Line
Count
Source
6914
13.8k
        {
6915
13.8k
            SCN_UNLIKELY_ATTR
6916
13.8k
            handler.on_error(msg);
6917
13.8k
        }
Unexecuted instantiation: impl.cpp:scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&)::id_adapter::on_error(char const*)
impl.cpp:scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::on_error(char const*)
Line
Count
Source
6914
836
        {
6915
836
            SCN_UNLIKELY_ATTR
6916
836
            handler.on_error(msg);
6917
836
        }
Unexecuted instantiation: impl.cpp:scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::on_error(char const*)
6918
6919
30.1M
        Handler& handler;
6920
30.1M
        std::size_t arg_id;
6921
30.1M
    };
6922
6923
30.1M
    ++begin;
6924
30.1M
    if (SCN_UNLIKELY(begin == end)) {
6925
130
        handler.on_error("Unexpected end of replacement field");
6926
130
        return begin;
6927
130
    }
6928
6929
30.1M
    if (*begin == CharT{'}'}) {
6930
19.3k
        handler.on_replacement_field(handler.on_arg_id(), begin);
6931
19.3k
    }
6932
30.1M
    else if (*begin == CharT{'{'}) {
6933
10.2k
        handler.on_literal_text(begin, begin + 1);
6934
10.2k
    }
6935
30.1M
    else {
6936
30.1M
        auto adapter = id_adapter{handler, 0};
6937
30.1M
        begin = parse_arg_id(begin, end, adapter);
6938
6939
30.1M
        if (SCN_UNLIKELY(begin == end)) {
6940
214
            handler.on_error("Missing '}' in format string");
6941
214
            return begin;
6942
214
        }
6943
6944
30.1M
        if (*begin == CharT{'}'}) {
6945
406
            handler.on_replacement_field(adapter.arg_id, begin);
6946
406
        }
6947
30.1M
        else if (*begin == CharT{':'}) {
6948
30.1M
            if (SCN_UNLIKELY(begin + 1 == end)) {
6949
176
                handler.on_error("Unexpected end of replacement field");
6950
176
                return begin;
6951
176
            }
6952
30.1M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
6953
30.1M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
6954
456k
                handler.on_error("Unknown format specifier");
6955
456k
                return begin;
6956
456k
            }
6957
30.1M
        }
6958
14.4k
        else {
6959
14.4k
            SCN_UNLIKELY_ATTR
6960
14.4k
            handler.on_error("Missing '}' in format string");
6961
14.4k
            return begin;
6962
14.4k
        }
6963
30.1M
    }
6964
29.7M
    return begin + 1;
6965
30.1M
}
impl.cpp:char const* scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
6902
3.57M
{
6903
3.57M
    struct id_adapter {
6904
3.57M
        constexpr void operator()()
6905
3.57M
        {
6906
3.57M
            arg_id = handler.on_arg_id();
6907
3.57M
        }
6908
3.57M
        constexpr void operator()(std::size_t id)
6909
3.57M
        {
6910
3.57M
            arg_id = handler.on_arg_id(id);
6911
3.57M
        }
6912
6913
3.57M
        constexpr void on_error(const char* msg)
6914
3.57M
        {
6915
3.57M
            SCN_UNLIKELY_ATTR
6916
3.57M
            handler.on_error(msg);
6917
3.57M
        }
6918
6919
3.57M
        Handler& handler;
6920
3.57M
        std::size_t arg_id;
6921
3.57M
    };
6922
6923
3.57M
    ++begin;
6924
3.57M
    if (SCN_UNLIKELY(begin == end)) {
6925
84
        handler.on_error("Unexpected end of replacement field");
6926
84
        return begin;
6927
84
    }
6928
6929
3.57M
    if (*begin == CharT{'}'}) {
6930
12.5k
        handler.on_replacement_field(handler.on_arg_id(), begin);
6931
12.5k
    }
6932
3.55M
    else if (*begin == CharT{'{'}) {
6933
9.85k
        handler.on_literal_text(begin, begin + 1);
6934
9.85k
    }
6935
3.54M
    else {
6936
3.54M
        auto adapter = id_adapter{handler, 0};
6937
3.54M
        begin = parse_arg_id(begin, end, adapter);
6938
6939
3.54M
        if (SCN_UNLIKELY(begin == end)) {
6940
122
            handler.on_error("Missing '}' in format string");
6941
122
            return begin;
6942
122
        }
6943
6944
3.54M
        if (*begin == CharT{'}'}) {
6945
320
            handler.on_replacement_field(adapter.arg_id, begin);
6946
320
        }
6947
3.54M
        else if (*begin == CharT{':'}) {
6948
3.53M
            if (SCN_UNLIKELY(begin + 1 == end)) {
6949
104
                handler.on_error("Unexpected end of replacement field");
6950
104
                return begin;
6951
104
            }
6952
3.53M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
6953
3.53M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
6954
82.5k
                handler.on_error("Unknown format specifier");
6955
82.5k
                return begin;
6956
82.5k
            }
6957
3.53M
        }
6958
13.7k
        else {
6959
13.7k
            SCN_UNLIKELY_ATTR
6960
13.7k
            handler.on_error("Missing '}' in format string");
6961
13.7k
            return begin;
6962
13.7k
        }
6963
3.54M
    }
6964
3.47M
    return begin + 1;
6965
3.57M
}
impl.cpp:char const* scn::v3::detail::parse_replacement_field<char, scn::v3::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v3::(anonymous namespace)::format_handler<false, char>&)
Line
Count
Source
6902
3.39M
{
6903
3.39M
    struct id_adapter {
6904
3.39M
        constexpr void operator()()
6905
3.39M
        {
6906
3.39M
            arg_id = handler.on_arg_id();
6907
3.39M
        }
6908
3.39M
        constexpr void operator()(std::size_t id)
6909
3.39M
        {
6910
3.39M
            arg_id = handler.on_arg_id(id);
6911
3.39M
        }
6912
6913
3.39M
        constexpr void on_error(const char* msg)
6914
3.39M
        {
6915
3.39M
            SCN_UNLIKELY_ATTR
6916
3.39M
            handler.on_error(msg);
6917
3.39M
        }
6918
6919
3.39M
        Handler& handler;
6920
3.39M
        std::size_t arg_id;
6921
3.39M
    };
6922
6923
3.39M
    ++begin;
6924
3.39M
    if (SCN_UNLIKELY(begin == end)) {
6925
0
        handler.on_error("Unexpected end of replacement field");
6926
0
        return begin;
6927
0
    }
6928
6929
3.39M
    if (*begin == CharT{'}'}) {
6930
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
6931
0
    }
6932
3.39M
    else if (*begin == CharT{'{'}) {
6933
0
        handler.on_literal_text(begin, begin + 1);
6934
0
    }
6935
3.39M
    else {
6936
3.39M
        auto adapter = id_adapter{handler, 0};
6937
3.39M
        begin = parse_arg_id(begin, end, adapter);
6938
6939
3.39M
        if (SCN_UNLIKELY(begin == end)) {
6940
0
            handler.on_error("Missing '}' in format string");
6941
0
            return begin;
6942
0
        }
6943
6944
3.39M
        if (*begin == CharT{'}'}) {
6945
0
            handler.on_replacement_field(adapter.arg_id, begin);
6946
0
        }
6947
3.39M
        else if (*begin == CharT{':'}) {
6948
3.39M
            if (SCN_UNLIKELY(begin + 1 == end)) {
6949
0
                handler.on_error("Unexpected end of replacement field");
6950
0
                return begin;
6951
0
            }
6952
3.39M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
6953
3.39M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
6954
72.9k
                handler.on_error("Unknown format specifier");
6955
72.9k
                return begin;
6956
72.9k
            }
6957
3.39M
        }
6958
0
        else {
6959
0
            SCN_UNLIKELY_ATTR
6960
0
            handler.on_error("Missing '}' in format string");
6961
0
            return begin;
6962
0
        }
6963
3.39M
    }
6964
3.31M
    return begin + 1;
6965
3.39M
}
impl.cpp:wchar_t const* scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
6902
15.2M
{
6903
15.2M
    struct id_adapter {
6904
15.2M
        constexpr void operator()()
6905
15.2M
        {
6906
15.2M
            arg_id = handler.on_arg_id();
6907
15.2M
        }
6908
15.2M
        constexpr void operator()(std::size_t id)
6909
15.2M
        {
6910
15.2M
            arg_id = handler.on_arg_id(id);
6911
15.2M
        }
6912
6913
15.2M
        constexpr void on_error(const char* msg)
6914
15.2M
        {
6915
15.2M
            SCN_UNLIKELY_ATTR
6916
15.2M
            handler.on_error(msg);
6917
15.2M
        }
6918
6919
15.2M
        Handler& handler;
6920
15.2M
        std::size_t arg_id;
6921
15.2M
    };
6922
6923
15.2M
    ++begin;
6924
15.2M
    if (SCN_UNLIKELY(begin == end)) {
6925
46
        handler.on_error("Unexpected end of replacement field");
6926
46
        return begin;
6927
46
    }
6928
6929
15.2M
    if (*begin == CharT{'}'}) {
6930
6.82k
        handler.on_replacement_field(handler.on_arg_id(), begin);
6931
6.82k
    }
6932
15.2M
    else if (*begin == CharT{'{'}) {
6933
432
        handler.on_literal_text(begin, begin + 1);
6934
432
    }
6935
15.2M
    else {
6936
15.2M
        auto adapter = id_adapter{handler, 0};
6937
15.2M
        begin = parse_arg_id(begin, end, adapter);
6938
6939
15.2M
        if (SCN_UNLIKELY(begin == end)) {
6940
92
            handler.on_error("Missing '}' in format string");
6941
92
            return begin;
6942
92
        }
6943
6944
15.2M
        if (*begin == CharT{'}'}) {
6945
86
            handler.on_replacement_field(adapter.arg_id, begin);
6946
86
        }
6947
15.2M
        else if (*begin == CharT{':'}) {
6948
15.2M
            if (SCN_UNLIKELY(begin + 1 == end)) {
6949
72
                handler.on_error("Unexpected end of replacement field");
6950
72
                return begin;
6951
72
            }
6952
15.2M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
6953
15.2M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
6954
155k
                handler.on_error("Unknown format specifier");
6955
155k
                return begin;
6956
155k
            }
6957
15.2M
        }
6958
744
        else {
6959
744
            SCN_UNLIKELY_ATTR
6960
744
            handler.on_error("Missing '}' in format string");
6961
744
            return begin;
6962
744
        }
6963
15.2M
    }
6964
15.1M
    return begin + 1;
6965
15.2M
}
impl.cpp:wchar_t const* scn::v3::detail::parse_replacement_field<wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)
Line
Count
Source
6902
7.93M
{
6903
7.93M
    struct id_adapter {
6904
7.93M
        constexpr void operator()()
6905
7.93M
        {
6906
7.93M
            arg_id = handler.on_arg_id();
6907
7.93M
        }
6908
7.93M
        constexpr void operator()(std::size_t id)
6909
7.93M
        {
6910
7.93M
            arg_id = handler.on_arg_id(id);
6911
7.93M
        }
6912
6913
7.93M
        constexpr void on_error(const char* msg)
6914
7.93M
        {
6915
7.93M
            SCN_UNLIKELY_ATTR
6916
7.93M
            handler.on_error(msg);
6917
7.93M
        }
6918
6919
7.93M
        Handler& handler;
6920
7.93M
        std::size_t arg_id;
6921
7.93M
    };
6922
6923
7.93M
    ++begin;
6924
7.93M
    if (SCN_UNLIKELY(begin == end)) {
6925
0
        handler.on_error("Unexpected end of replacement field");
6926
0
        return begin;
6927
0
    }
6928
6929
7.93M
    if (*begin == CharT{'}'}) {
6930
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
6931
0
    }
6932
7.93M
    else if (*begin == CharT{'{'}) {
6933
0
        handler.on_literal_text(begin, begin + 1);
6934
0
    }
6935
7.93M
    else {
6936
7.93M
        auto adapter = id_adapter{handler, 0};
6937
7.93M
        begin = parse_arg_id(begin, end, adapter);
6938
6939
7.93M
        if (SCN_UNLIKELY(begin == end)) {
6940
0
            handler.on_error("Missing '}' in format string");
6941
0
            return begin;
6942
0
        }
6943
6944
7.93M
        if (*begin == CharT{'}'}) {
6945
0
            handler.on_replacement_field(adapter.arg_id, begin);
6946
0
        }
6947
7.93M
        else if (*begin == CharT{':'}) {
6948
7.93M
            if (SCN_UNLIKELY(begin + 1 == end)) {
6949
0
                handler.on_error("Unexpected end of replacement field");
6950
0
                return begin;
6951
0
            }
6952
7.93M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
6953
7.93M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
6954
145k
                handler.on_error("Unknown format specifier");
6955
145k
                return begin;
6956
145k
            }
6957
7.93M
        }
6958
0
        else {
6959
0
            SCN_UNLIKELY_ATTR
6960
0
            handler.on_error("Missing '}' in format string");
6961
0
            return begin;
6962
0
        }
6963
7.93M
    }
6964
7.79M
    return begin + 1;
6965
7.93M
}
6966
6967
template <bool IsConstexpr, typename CharT, typename Handler>
6968
constexpr void parse_format_string_impl(std::basic_string_view<CharT> format,
6969
                                        Handler&& handler)
6970
30.4M
{
6971
    // TODO: memchr fast path with a larger (> 32) format string
6972
6973
30.4M
    auto begin = format.data();
6974
30.4M
    auto it = begin;
6975
30.4M
    const auto end = format.data() + format.size();
6976
6977
608M
    while (it != end) {
6978
579M
        const auto ch = *it++;
6979
579M
        if (ch == CharT{'{'}) {
6980
30.1M
            handler.on_literal_text(begin, it - 1);
6981
6982
30.1M
            begin = it = parse_replacement_field(it - 1, end, handler);
6983
30.1M
            if (!handler) {
6984
1.94M
                return;
6985
1.94M
            }
6986
30.1M
        }
6987
549M
        else if (ch == CharT{'}'}) {
6988
141k
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
6989
137k
                handler.on_error("Unmatched '}' in format string");
6990
137k
                return;
6991
137k
            }
6992
6993
3.99k
            handler.on_literal_text(begin, it);
6994
3.99k
            begin = ++it;
6995
3.99k
        }
6996
579M
    }
6997
6998
28.3M
    handler.on_literal_text(begin, end);
6999
28.3M
}
impl.cpp:void scn::v3::detail::parse_format_string_impl<false, char, scn::v3::(anonymous namespace)::format_handler<true, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v3::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
6970
3.56M
{
6971
    // TODO: memchr fast path with a larger (> 32) format string
6972
6973
3.56M
    auto begin = format.data();
6974
3.56M
    auto it = begin;
6975
3.56M
    const auto end = format.data() + format.size();
6976
6977
7.10M
    while (it != end) {
6978
3.96M
        const auto ch = *it++;
6979
3.96M
        if (ch == CharT{'{'}) {
6980
3.57M
            handler.on_literal_text(begin, it - 1);
6981
6982
3.57M
            begin = it = parse_replacement_field(it - 1, end, handler);
6983
3.57M
            if (!handler) {
6984
424k
                return;
6985
424k
            }
6986
3.57M
        }
6987
395k
        else if (ch == CharT{'}'}) {
6988
7.03k
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
6989
3.21k
                handler.on_error("Unmatched '}' in format string");
6990
3.21k
                return;
6991
3.21k
            }
6992
6993
3.82k
            handler.on_literal_text(begin, it);
6994
3.82k
            begin = ++it;
6995
3.82k
        }
6996
3.96M
    }
6997
6998
3.13M
    handler.on_literal_text(begin, end);
6999
3.13M
}
impl.cpp:void scn::v3::detail::parse_format_string_impl<false, char, scn::v3::(anonymous namespace)::format_handler<false, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v3::(anonymous namespace)::format_handler<false, char>&)
Line
Count
Source
6970
3.39M
{
6971
    // TODO: memchr fast path with a larger (> 32) format string
6972
6973
3.39M
    auto begin = format.data();
6974
3.39M
    auto it = begin;
6975
3.39M
    const auto end = format.data() + format.size();
6976
6977
6.48M
    while (it != end) {
6978
3.39M
        const auto ch = *it++;
6979
3.39M
        if (ch == CharT{'{'}) {
6980
3.39M
            handler.on_literal_text(begin, it - 1);
6981
6982
3.39M
            begin = it = parse_replacement_field(it - 1, end, handler);
6983
3.39M
            if (!handler) {
6984
298k
                return;
6985
298k
            }
6986
3.39M
        }
6987
0
        else if (ch == CharT{'}'}) {
6988
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
6989
0
                handler.on_error("Unmatched '}' in format string");
6990
0
                return;
6991
0
            }
6992
6993
0
            handler.on_literal_text(begin, it);
6994
0
            begin = ++it;
6995
0
        }
6996
3.39M
    }
6997
6998
3.09M
    handler.on_literal_text(begin, end);
6999
3.09M
}
impl.cpp:void scn::v3::detail::parse_format_string_impl<false, wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
6970
15.5M
{
6971
    // TODO: memchr fast path with a larger (> 32) format string
6972
6973
15.5M
    auto begin = format.data();
6974
15.5M
    auto it = begin;
6975
15.5M
    const auto end = format.data() + format.size();
6976
6977
579M
    while (it != end) {
6978
564M
        const auto ch = *it++;
6979
564M
        if (ch == CharT{'{'}) {
6980
15.2M
            handler.on_literal_text(begin, it - 1);
6981
6982
15.2M
            begin = it = parse_replacement_field(it - 1, end, handler);
6983
15.2M
            if (!handler) {
6984
625k
                return;
6985
625k
            }
6986
15.2M
        }
6987
549M
        else if (ch == CharT{'}'}) {
6988
134k
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
6989
133k
                handler.on_error("Unmatched '}' in format string");
6990
133k
                return;
6991
133k
            }
6992
6993
174
            handler.on_literal_text(begin, it);
6994
174
            begin = ++it;
6995
174
        }
6996
564M
    }
6997
6998
14.7M
    handler.on_literal_text(begin, end);
6999
14.7M
}
impl.cpp:void scn::v3::detail::parse_format_string_impl<false, wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)
Line
Count
Source
6970
7.93M
{
6971
    // TODO: memchr fast path with a larger (> 32) format string
6972
6973
7.93M
    auto begin = format.data();
6974
7.93M
    auto it = begin;
6975
7.93M
    const auto end = format.data() + format.size();
6976
6977
15.2M
    while (it != end) {
6978
7.93M
        const auto ch = *it++;
6979
7.93M
        if (ch == CharT{'{'}) {
6980
7.93M
            handler.on_literal_text(begin, it - 1);
6981
6982
7.93M
            begin = it = parse_replacement_field(it - 1, end, handler);
6983
7.93M
            if (!handler) {
6984
597k
                return;
6985
597k
            }
6986
7.93M
        }
6987
0
        else if (ch == CharT{'}'}) {
6988
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
6989
0
                handler.on_error("Unmatched '}' in format string");
6990
0
                return;
6991
0
            }
6992
6993
0
            handler.on_literal_text(begin, it);
6994
0
            begin = ++it;
6995
0
        }
6996
7.93M
    }
6997
6998
7.33M
    handler.on_literal_text(begin, end);
6999
7.33M
}
7000
7001
template <bool IsConstexpr, typename CharT, typename Handler>
7002
constexpr scan_error parse_format_string(std::basic_string_view<CharT> format,
7003
                                         Handler&& handler)
7004
30.4M
{
7005
30.4M
    parse_format_string_impl<IsConstexpr>(format, handler);
7006
30.4M
    handler.check_args_exhausted();
7007
30.4M
    return handler.get_error();
7008
30.4M
}
impl.cpp:scn::v3::scan_error scn::v3::detail::parse_format_string<false, char, scn::v3::(anonymous namespace)::format_handler<true, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v3::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
7004
3.56M
{
7005
3.56M
    parse_format_string_impl<IsConstexpr>(format, handler);
7006
3.56M
    handler.check_args_exhausted();
7007
3.56M
    return handler.get_error();
7008
3.56M
}
impl.cpp:scn::v3::scan_error scn::v3::detail::parse_format_string<false, char, scn::v3::(anonymous namespace)::format_handler<false, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v3::(anonymous namespace)::format_handler<false, char>&)
Line
Count
Source
7004
3.39M
{
7005
3.39M
    parse_format_string_impl<IsConstexpr>(format, handler);
7006
3.39M
    handler.check_args_exhausted();
7007
3.39M
    return handler.get_error();
7008
3.39M
}
impl.cpp:scn::v3::scan_error scn::v3::detail::parse_format_string<false, wchar_t, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v3::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
7004
15.5M
{
7005
15.5M
    parse_format_string_impl<IsConstexpr>(format, handler);
7006
15.5M
    handler.check_args_exhausted();
7007
15.5M
    return handler.get_error();
7008
15.5M
}
impl.cpp:scn::v3::scan_error scn::v3::detail::parse_format_string<false, wchar_t, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v3::(anonymous namespace)::format_handler<false, wchar_t>&)
Line
Count
Source
7004
7.93M
{
7005
7.93M
    parse_format_string_impl<IsConstexpr>(format, handler);
7006
7.93M
    handler.check_args_exhausted();
7007
7.93M
    return handler.get_error();
7008
7.93M
}
7009
7010
enum class arg_type_category {
7011
    none,
7012
    integer,
7013
    unsigned_integer,
7014
    floating,
7015
    string,
7016
    pointer,
7017
    boolean,
7018
    character,
7019
    custom
7020
};
7021
7022
constexpr arg_type_category get_category_for_arg_type(arg_type type)
7023
1.72M
{
7024
1.72M
    switch (type) {
7025
94
        case arg_type::none_type:
7026
94
            return arg_type_category::none;
7027
7028
121k
        case arg_type::schar_type:
7029
121k
        case arg_type::short_type:
7030
259k
        case arg_type::int_type:
7031
259k
        case arg_type::long_type:
7032
398k
        case arg_type::llong_type:
7033
398k
            return arg_type_category::integer;
7034
7035
109k
        case arg_type::uchar_type:
7036
109k
        case arg_type::ushort_type:
7037
229k
        case arg_type::uint_type:
7038
229k
        case arg_type::ulong_type:
7039
351k
        case arg_type::ullong_type:
7040
351k
            return arg_type_category::unsigned_integer;
7041
7042
104
        case arg_type::pointer_type:
7043
104
            return arg_type_category::pointer;
7044
104
        case arg_type::bool_type:
7045
104
            return arg_type_category::boolean;
7046
84
        case arg_type::narrow_character_type:
7047
104
        case arg_type::wide_character_type:
7048
104
        case arg_type::code_point_type:
7049
104
            return arg_type_category::character;
7050
7051
298k
        case arg_type::float_type:
7052
626k
        case arg_type::double_type:
7053
959k
        case arg_type::ldouble_type:
7054
959k
            return arg_type_category::floating;
7055
7056
1.54k
        case arg_type::narrow_string_view_type:
7057
4.57k
        case arg_type::narrow_string_type:
7058
7.51k
        case arg_type::wide_string_view_type:
7059
13.4k
        case arg_type::wide_string_type:
7060
13.4k
            return arg_type_category::string;
7061
7062
0
        case arg_type::custom_type:
7063
0
            return arg_type_category::custom;
7064
7065
0
            SCN_CLANG_PUSH
7066
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
7067
0
        default:
7068
0
            SCN_ENSURE(false);
7069
1.72M
            SCN_UNREACHABLE;
7070
1.72M
            SCN_CLANG_POP
7071
1.72M
    }
7072
7073
1.72M
    SCN_UNREACHABLE;
7074
1.72M
}
7075
7076
template <typename Handler>
7077
class specs_checker : public Handler {
7078
public:
7079
    template <typename H>
7080
    constexpr specs_checker(H&& handler, arg_type type)
7081
        : Handler(SCN_FWD(handler)), m_arg_type(type)
7082
30.1M
    {
7083
30.1M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7084
30.1M
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >(scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> >&&, scn::v3::detail::arg_type)
Line
Count
Source
7082
3.53M
    {
7083
3.53M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7084
3.53M
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >(scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> >&&, scn::v3::detail::arg_type)
Line
Count
Source
7082
3.39M
    {
7083
3.39M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7084
3.39M
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >(scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> >&&, scn::v3::detail::arg_type)
Line
Count
Source
7082
15.2M
    {
7083
15.2M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7084
15.2M
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >(scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> >&&, scn::v3::detail::arg_type)
Line
Count
Source
7082
7.93M
    {
7083
7.93M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7084
7.93M
    }
7085
7086
    constexpr void on_localized()
7087
1.72M
    {
7088
1.72M
        const auto cat = get_category_for_arg_type(m_arg_type);
7089
1.72M
        if (cat != arg_type_category::integer &&
7090
1.72M
            cat != arg_type_category::unsigned_integer &&
7091
1.72M
            cat != arg_type_category::floating &&
7092
1.72M
            cat != arg_type_category::boolean) {
7093
13.7k
            SCN_UNLIKELY_ATTR
7094
            // clang-format off
7095
13.7k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7096
            // clang-format on
7097
13.7k
        }
7098
7099
1.71M
        Handler::on_localized();
7100
1.71M
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<char> > >::on_localized()
Line
Count
Source
7087
771k
    {
7088
771k
        const auto cat = get_category_for_arg_type(m_arg_type);
7089
771k
        if (cat != arg_type_category::integer &&
7090
771k
            cat != arg_type_category::unsigned_integer &&
7091
771k
            cat != arg_type_category::floating &&
7092
771k
            cat != arg_type_category::boolean) {
7093
3.43k
            SCN_UNLIKELY_ATTR
7094
            // clang-format off
7095
3.43k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7096
            // clang-format on
7097
3.43k
        }
7098
7099
767k
        Handler::on_localized();
7100
767k
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<char> > >::on_localized()
Line
Count
Source
7087
775k
    {
7088
775k
        const auto cat = get_category_for_arg_type(m_arg_type);
7089
775k
        if (cat != arg_type_category::integer &&
7090
775k
            cat != arg_type_category::unsigned_integer &&
7091
775k
            cat != arg_type_category::floating &&
7092
775k
            cat != arg_type_category::boolean) {
7093
1.46k
            SCN_UNLIKELY_ATTR
7094
            // clang-format off
7095
1.46k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7096
            // clang-format on
7097
1.46k
        }
7098
7099
773k
        Handler::on_localized();
7100
773k
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::impl::basic_contiguous_scan_context<wchar_t> > >::on_localized()
Line
Count
Source
7087
90.3k
    {
7088
90.3k
        const auto cat = get_category_for_arg_type(m_arg_type);
7089
90.3k
        if (cat != arg_type_category::integer &&
7090
90.3k
            cat != arg_type_category::unsigned_integer &&
7091
90.3k
            cat != arg_type_category::floating &&
7092
90.3k
            cat != arg_type_category::boolean) {
7093
5.95k
            SCN_UNLIKELY_ATTR
7094
            // clang-format off
7095
5.95k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7096
            // clang-format on
7097
5.95k
        }
7098
7099
84.4k
        Handler::on_localized();
7100
84.4k
    }
impl.cpp:scn::v3::detail::specs_checker<scn::v3::(anonymous namespace)::specs_handler<scn::v3::basic_scan_context<wchar_t> > >::on_localized()
Line
Count
Source
7087
87.2k
    {
7088
87.2k
        const auto cat = get_category_for_arg_type(m_arg_type);
7089
87.2k
        if (cat != arg_type_category::integer &&
7090
87.2k
            cat != arg_type_category::unsigned_integer &&
7091
87.2k
            cat != arg_type_category::floating &&
7092
87.2k
            cat != arg_type_category::boolean) {
7093
2.92k
            SCN_UNLIKELY_ATTR
7094
            // clang-format off
7095
2.92k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7096
            // clang-format on
7097
2.92k
        }
7098
7099
84.3k
        Handler::on_localized();
7100
84.3k
    }
7101
7102
private:
7103
    arg_type m_arg_type;
7104
};
7105
7106
template <typename Handler>
7107
constexpr void check_int_type_specs(const format_specs& specs,
7108
                                    Handler&& handler)
7109
3.98M
{
7110
3.98M
    if (SCN_UNLIKELY(specs.type > presentation_type::int_hex)) {
7111
18.5k
        return handler.on_error("Invalid type specifier for integer type");
7112
18.5k
    }
7113
3.96M
    if (specs.localized) {
7114
750k
        if (SCN_UNLIKELY(specs.type == presentation_type::int_binary)) {
7115
            // clang-format off
7116
12
            handler.on_error("'b'/'B' specifier not supported for localized integers");
7117
            // clang-format on
7118
12
            return;
7119
12
        }
7120
750k
        if (SCN_UNLIKELY(specs.type == presentation_type::int_arbitrary_base)) {
7121
            // clang-format off
7122
0
            return handler.on_error("Arbitrary bases not supported for localized integers");
7123
            // clang-format on
7124
0
        }
7125
750k
    }
7126
3.96M
}
Unexecuted instantiation: void scn::v3::detail::check_int_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
void scn::v3::detail::check_int_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
Line
Count
Source
7109
3.98M
{
7110
3.98M
    if (SCN_UNLIKELY(specs.type > presentation_type::int_hex)) {
7111
18.5k
        return handler.on_error("Invalid type specifier for integer type");
7112
18.5k
    }
7113
3.96M
    if (specs.localized) {
7114
750k
        if (SCN_UNLIKELY(specs.type == presentation_type::int_binary)) {
7115
            // clang-format off
7116
12
            handler.on_error("'b'/'B' specifier not supported for localized integers");
7117
            // clang-format on
7118
12
            return;
7119
12
        }
7120
750k
        if (SCN_UNLIKELY(specs.type == presentation_type::int_arbitrary_base)) {
7121
            // clang-format off
7122
0
            return handler.on_error("Arbitrary bases not supported for localized integers");
7123
            // clang-format on
7124
0
        }
7125
750k
    }
7126
3.96M
}
7127
7128
template <typename Handler>
7129
constexpr void check_char_type_specs(const format_specs& specs,
7130
                                     Handler&& handler)
7131
11.0k
{
7132
11.0k
    if (specs.type > presentation_type::int_hex ||
7133
11.0k
        specs.type == presentation_type::int_arbitrary_base) {
7134
9.27k
        SCN_UNLIKELY_ATTR
7135
9.27k
        return handler.on_error("Invalid type specifier for character type");
7136
9.27k
    }
7137
11.0k
}
Unexecuted instantiation: void scn::v3::detail::check_char_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
void scn::v3::detail::check_char_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
Line
Count
Source
7131
11.0k
{
7132
11.0k
    if (specs.type > presentation_type::int_hex ||
7133
11.0k
        specs.type == presentation_type::int_arbitrary_base) {
7134
9.27k
        SCN_UNLIKELY_ATTR
7135
9.27k
        return handler.on_error("Invalid type specifier for character type");
7136
9.27k
    }
7137
11.0k
}
7138
7139
template <typename Handler>
7140
constexpr void check_code_point_type_specs(const format_specs& specs,
7141
                                           Handler&& handler)
7142
0
{
7143
0
    if (specs.type != presentation_type::none &&
7144
0
        specs.type != presentation_type::character) {
7145
0
        SCN_UNLIKELY_ATTR
7146
0
        return handler.on_error("Invalid type specifier for code point type");
7147
0
    }
7148
0
}
7149
7150
template <typename Handler>
7151
constexpr void check_float_type_specs(const format_specs& specs,
7152
                                      Handler&& handler)
7153
3.45M
{
7154
3.45M
    if (specs.type != presentation_type::none &&
7155
3.45M
        (specs.type < presentation_type::float_hex ||
7156
2.49M
         specs.type > presentation_type::float_general)) {
7157
9.31k
        SCN_UNLIKELY_ATTR
7158
9.31k
        return handler.on_error("Invalid type specifier for float type");
7159
9.31k
    }
7160
3.45M
}
Unexecuted instantiation: void scn::v3::detail::check_float_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
void scn::v3::detail::check_float_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
Line
Count
Source
7153
3.45M
{
7154
3.45M
    if (specs.type != presentation_type::none &&
7155
3.45M
        (specs.type < presentation_type::float_hex ||
7156
2.49M
         specs.type > presentation_type::float_general)) {
7157
9.31k
        SCN_UNLIKELY_ATTR
7158
9.31k
        return handler.on_error("Invalid type specifier for float type");
7159
9.31k
    }
7160
3.45M
}
7161
7162
template <typename Handler>
7163
constexpr void check_string_type_specs(const format_specs& specs,
7164
                                       Handler&& handler)
7165
22.2M
{
7166
22.2M
    if (specs.type == presentation_type::none ||
7167
22.2M
        specs.type == presentation_type::string ||
7168
22.2M
        specs.type == presentation_type::string_set ||
7169
22.2M
        specs.type == presentation_type::regex ||
7170
22.2M
        specs.type == presentation_type::regex_escaped) {
7171
22.1M
        return;
7172
22.1M
    }
7173
14.7k
    if (specs.type == presentation_type::character) {
7174
13.7k
        if (SCN_UNLIKELY(specs.precision == 0)) {
7175
            // clang-format off
7176
13.5k
            return handler.on_error("'c' type specifier for strings requires the field precision to be specified");
7177
            // clang-format on
7178
13.5k
        }
7179
216
        return;
7180
13.7k
    }
7181
960
    SCN_UNLIKELY_ATTR
7182
960
    handler.on_error("Invalid type specifier for string");
7183
960
}
Unexecuted instantiation: void scn::v3::detail::check_string_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
void scn::v3::detail::check_string_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
Line
Count
Source
7165
22.2M
{
7166
22.2M
    if (specs.type == presentation_type::none ||
7167
22.2M
        specs.type == presentation_type::string ||
7168
22.2M
        specs.type == presentation_type::string_set ||
7169
22.2M
        specs.type == presentation_type::regex ||
7170
22.2M
        specs.type == presentation_type::regex_escaped) {
7171
22.1M
        return;
7172
22.1M
    }
7173
14.7k
    if (specs.type == presentation_type::character) {
7174
13.7k
        if (SCN_UNLIKELY(specs.precision == 0)) {
7175
            // clang-format off
7176
13.5k
            return handler.on_error("'c' type specifier for strings requires the field precision to be specified");
7177
            // clang-format on
7178
13.5k
        }
7179
216
        return;
7180
13.7k
    }
7181
960
    SCN_UNLIKELY_ATTR
7182
960
    handler.on_error("Invalid type specifier for string");
7183
960
}
7184
7185
template <typename Handler>
7186
constexpr void check_pointer_type_specs(const format_specs& specs,
7187
                                        Handler&& handler)
7188
11.0k
{
7189
11.0k
    if (specs.type != presentation_type::none &&
7190
11.0k
        specs.type != presentation_type::pointer) {
7191
9.42k
        SCN_UNLIKELY_ATTR
7192
9.42k
        return handler.on_error("Invalid type specifier for pointer");
7193
9.42k
    }
7194
11.0k
}
Unexecuted instantiation: void scn::v3::detail::check_pointer_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
void scn::v3::detail::check_pointer_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
Line
Count
Source
7188
11.0k
{
7189
11.0k
    if (specs.type != presentation_type::none &&
7190
11.0k
        specs.type != presentation_type::pointer) {
7191
9.42k
        SCN_UNLIKELY_ATTR
7192
9.42k
        return handler.on_error("Invalid type specifier for pointer");
7193
9.42k
    }
7194
11.0k
}
7195
7196
template <typename Handler>
7197
constexpr void check_bool_type_specs(const format_specs& specs,
7198
                                     Handler&& handler)
7199
11.0k
{
7200
11.0k
    if (specs.type != presentation_type::none &&
7201
11.0k
        specs.type != presentation_type::string &&
7202
11.0k
        specs.type != presentation_type::int_generic &&
7203
11.0k
        specs.type != presentation_type::int_hex &&
7204
11.0k
        specs.type != presentation_type::int_binary &&
7205
11.0k
        specs.type != presentation_type::int_unsigned_decimal &&
7206
11.0k
        specs.type != presentation_type::int_octal &&
7207
11.0k
        specs.type != presentation_type::int_decimal) {
7208
9.11k
        SCN_UNLIKELY_ATTR
7209
9.11k
        return handler.on_error("Invalid type specifier for boolean");
7210
9.11k
    }
7211
11.0k
}
Unexecuted instantiation: void scn::v3::detail::check_bool_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
void scn::v3::detail::check_bool_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
Line
Count
Source
7199
11.0k
{
7200
11.0k
    if (specs.type != presentation_type::none &&
7201
11.0k
        specs.type != presentation_type::string &&
7202
11.0k
        specs.type != presentation_type::int_generic &&
7203
11.0k
        specs.type != presentation_type::int_hex &&
7204
11.0k
        specs.type != presentation_type::int_binary &&
7205
11.0k
        specs.type != presentation_type::int_unsigned_decimal &&
7206
11.0k
        specs.type != presentation_type::int_octal &&
7207
11.0k
        specs.type != presentation_type::int_decimal) {
7208
9.11k
        SCN_UNLIKELY_ATTR
7209
9.11k
        return handler.on_error("Invalid type specifier for boolean");
7210
9.11k
    }
7211
11.0k
}
7212
7213
template <typename Handler>
7214
constexpr void check_regex_type_specs(const format_specs& specs,
7215
                                      Handler&& handler)
7216
0
{
7217
0
    if (SCN_UNLIKELY(specs.type == presentation_type::none ||
7218
0
                     specs.charset_string_size == 0)) {
7219
        // clang-format off
7220
0
        return handler.on_error("Regular expression needs to specified when reading regex_matches");
7221
        // clang-format on
7222
0
    }
7223
0
    if (specs.type == presentation_type::regex ||
7224
0
        specs.type == presentation_type::regex_escaped) {
7225
0
        return;
7226
0
    }
7227
0
    SCN_UNLIKELY_ATTR
7228
0
    handler.on_error("Invalid type specifier for regex_matches");
7229
0
}
Unexecuted instantiation: void scn::v3::detail::check_regex_type_specs<scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&>(scn::v3::detail::format_specs const&, scn::v3::detail::specs_checker<scn::v3::detail::specs_setter>&)
Unexecuted instantiation: void scn::v3::detail::check_regex_type_specs<scn::v3::impl::reader_error_handler&>(scn::v3::detail::format_specs const&, scn::v3::impl::reader_error_handler&)
7230
}  // namespace detail
7231
7232
/**
7233
 * \defgroup format-string Format strings
7234
 *
7235
 * \brief Format string description
7236
 *
7237
 * The format string syntax is heavily influenced by {fmt} and
7238
 * `std::format`, and is largely compatible with it. Scanning functions,
7239
 * such as `scn::scan` and
7240
 * `scn::input`, use the format string syntax described in this section.
7241
 *
7242
 * Format strings consist of:
7243
 *
7244
 *  * Replacement fields, which are surrounded by curly braces `{}`.
7245
 *
7246
 *  * Non-whitespace characters (except `{}`; for literal braces, use
7247
 *    `{{` and `}}`), which consume exactly one identical character from the
7248
 *    input
7249
 *
7250
 *  * Whitespace characters, which consume any and all available consecutive
7251
 *    whitespace from the input.
7252
 *
7253
 * Literal characters are matched by code point one-to-one, with no
7254
 * normalization being done.
7255
 * `Ä` (U+00C4, UTF-8 0xc3 0x84) only matches another U+00C4, and not, for
7256
 * example, U+00A8 (DIAERESIS) and U+0041 (LATIN CAPITAL LETTER A).
7257
 *
7258
 * Characters (code points) are considered to be whitespace characters by
7259
 * the Unicode Pattern_White_Space property, as defined by UAX31-R3a.
7260
 * These code points are:
7261
 *
7262
 *  * ASCII whitespace characters ("\t\n\v\f\r ")
7263
 *  * U+0085 (next line)
7264
 *  * U+200E and U+200F (LEFT-TO-RIGHT MARK and RIGHT-TO-LEFT MARK)
7265
 *  * U+2028 and U+2029 (LINE SEPARATOR and PARAGRAPH SEPARATOR)
7266
 *
7267
 * The grammar for a replacement field is as follows:
7268
 *
7269
 * \code
7270
 * replacement-field   ::= '{' [arg-id] [':' format-spec] '}'
7271
 * arg-id              ::= positive-integer
7272
 *
7273
 * format-spec         ::= [fill-and-align]
7274
 *                         [width] [precision]
7275
 *                         ['L'] [type]
7276
 * fill-and-align      ::= [fill] align
7277
 * fill                ::= any character other than
7278
 *                         '{' or '}'
7279
 * align               ::= one of '<' '>' '^'
7280
 * width               ::= positive-integer
7281
 * precision           ::= '.' nonnegative-integer
7282
 * type                ::= 'a' | 'A' | 'b' | 'B' | 'c' | 'd' |
7283
 *                         'e' | 'E' | 'f' | 'F' | 'g' | 'G' |
7284
 *                         'o' | 'p' | 's' | 'x' | 'X' | 'i' | 'u'
7285
 * \endcode
7286
 *
7287
 * \section arg-ids Argument IDs
7288
 *
7289
 * The `arg-id` specifier can be used to index arguments manually.
7290
 * If manual indexing is used, all of the indices in a format string must be
7291
 * stated explicitly. The same `arg-id` can appear in the format string
7292
 * only once, and must refer to a valid argument.
7293
 *
7294
 * \code{.cpp}
7295
 * // Format string equivalent to "{0} to {1}"
7296
 * auto a = scn::scan<int, int>("2 to 300", "{} to {}");
7297
 * // a->values() == (2, 300)
7298
 *
7299
 * // Manual indexing
7300
 * auto b = scn::scan<int, int>("2 to 300", "{1} to {0}");
7301
 * // b->values() == (3, 200)
7302
 *
7303
 * // INVALID:
7304
 * // Automatic and manual indexing is mixed
7305
 * auto c = scn::scan<int, int>("2 to 300", "{} to {0}");
7306
 *
7307
 * // INVALID:
7308
 * // Same argument is referred to multiple times
7309
 * auto d = scn::scan<int, int>("2 to 300", "{0} to {0}");
7310
 *
7311
 * // INVALID:
7312
 * // {2} does not refer to an argument
7313
 * auto e = scn::scan<int, int>("2 to 300", "{0} to {2}");
7314
 * \endcode
7315
 *
7316
 * \section fill-and-align Fill and align
7317
 *
7318
 * Alignment allows for skipping character before and/or after a value.
7319
 * There are three possible values for alignment:
7320
 *
7321
 * <table>
7322
 * <caption id="align-table">
7323
 * Alignment options
7324
 * </caption>
7325
 *
7326
 * <tr><th>Option</th> <th>Meaning</th></tr>
7327
 *
7328
 * <tr>
7329
 * <td>`<`</td>
7330
 * <td>
7331
 * Align the value to the left (skips fill characters after the value)
7332
 * </td>
7333
 * </tr>
7334
 *
7335
 * <tr>
7336
 * <td>`>`</td>
7337
 * <td>
7338
 * Align the value to the right (skips fill characters before the value)
7339
 * </td>
7340
 * </tr>
7341
 *
7342
 * <tr>
7343
 * <td>`^`</td>
7344
 * <td>
7345
 * Align the value to the center
7346
 * (skips fill characters both before and after the value)
7347
 * </td>
7348
 * </tr>
7349
 * </table>
7350
 *
7351
 * The fill character can be any Unicode code point, except for `{` and `}`.
7352
 * The default fill is any whitespace character, as specified above.
7353
 *
7354
 * For format type specifiers other than `c` (default for `char` and `wchar_t`,
7355
 * available for `string` and `string_view`), `[...]`, and the regex `/.../`,
7356
 * the default alignment is `>`.
7357
 * In practice, this means that leading whitespace is skipped by default.
7358
 * For the `c` format type specifier, there's no default alignment,
7359
 * and no fill characters are skipped, including whitespace.
7360
 *
7361
 * The number of fill characters consumed can be controlled with the width and
7362
 * precision specifiers.
7363
 *
7364
 * \section width Width
7365
 *
7366
 * Width specifies the minimum number of characters that will be read from
7367
 * the source range. It can be any unsigned integer. Any fill characters skipped
7368
 * are included in the width.
7369
 *
7370
 * For the purposes of width calculation, the same algorithm is used that in
7371
 * {fmt}. Every code point has a width of one, except the following ones
7372
 * have a width of 2:
7373
 *
7374
 * * any code point with the East_Asian_Width="W" or East_Asian_Width="F"
7375
 *   Derived Extracted Property as described by UAX#44
7376
 * * U+4DC0 – U+4DFF (Yijing Hexagram Symbols)
7377
 * * U+1F300 – U+1F5FF (Miscellaneous Symbols and Pictographs)
7378
 * * U+1F900 – U+1F9FF (Supplemental Symbols and Pictographs)
7379
 *
7380
 * \section precision Precision
7381
 *
7382
 * Precision specifies the maximum number of characters that will be read from
7383
 * the source range. The method for counting characters is the same as above,
7384
 * with the width field.
7385
 *
7386
 * \section localized Localized
7387
 *
7388
 * The `L` flag enables localized scanning.
7389
 * Its effects are different for each type it is used with:
7390
 *
7391
 *  * For integers, it enables locale-specific thousands separators
7392
 *  * For floating-point numbers, it enables locale-specific thousands and
7393
 *    radix (decimal) separators
7394
 *  * For booleans, it enables locale-specific textual representations (for
7395
 *    `true` and `false`)
7396
 *  * For other types, it has no effect
7397
 *
7398
 * \section type Type specifier
7399
 *
7400
 * The type specifier determines how the data is to be scanned.
7401
 * The type of the argument to be scanned determines what flags are valid.
7402
 *
7403
 * \subsection type-string Type specifier: strings
7404
 *
7405
 * <table>
7406
 * <caption id="type-string-table">
7407
 * String types (`std::basic_string` and `std::basic_string_view`)
7408
 * </caption>
7409
 * <tr><th>Type</th> <th>Meaning</th></tr>
7410
 * <tr>
7411
 * <td>none, `s`</td>
7412
 * <td>
7413
 * Copies from the input until a whitespace character is encountered, or,
7414
 * if using the `<` (left) or `^` (center) alignment,
7415
 * a fill character is encountered.
7416
 * </td>
7417
 * </tr>
7418
 * <tr>
7419
 * <td>`c`</td>
7420
 * <td>
7421
 * Copies from the input until the field width is exhausted.
7422
 * Has no default alignment
7423
 * (doesn't skip preceding whitespace, if no alignment is specified).
7424
 * Errors if no field precision is provided.
7425
 * </td>
7426
 * </tr>
7427
 * <tr>
7428
 * <td>`[...]`</td>
7429
 * <td>
7430
 * Character set matching: copies from the input until a character not specified
7431
 * in the set is encountered. Character ranges can be specified with `-`, and
7432
 * the entire selection can be inverted with a prefix `^`. Matches and supports
7433
 * arbitrary Unicode code points.
7434
 * Has no default alignment
7435
 * (doesn't skip preceding whitespace, if no alignment is specified).
7436
 * </td>
7437
 * </tr>
7438
 * <tr>
7439
 * <td>`/<regex>/<flags>`</td>
7440
 * <td>
7441
 * Regular expression matching: copies from the input until the input does not
7442
 * match the regex.
7443
 * Has no default alignment
7444
 * (doesn't skip preceding whitespace, if no alignment is specified).
7445
 * \see regex
7446
 * </td>
7447
 * </tr>
7448
 * </table>
7449
 *
7450
 * \note `std::basic_string_view` can only be scanned if the source is
7451
 * contiguous.
7452
 *
7453
 * \subsection type-int Type specifier: integers
7454
 *
7455
 * Integer values are scanned as if by using `std::from_chars`,
7456
 * except a positive `+` sign and a base prefix (like `0x`) are always
7457
 * allowed to be present.
7458
 *
7459
 * <table>
7460
 * <caption id="type-int-table">
7461
 * Integer types (`signed` and `unsigned` variants of `char`, `short`,
7462
 * `int`, `long`, and `long long`)
7463
 * </caption>
7464
 * <tr><th>Type</th> <th>Meaning</th></tr>
7465
 * <tr>
7466
 * <td>`b`, `B`</td>
7467
 * <td>
7468
 * `std::from_chars` with base `2`. The base prefix is `0b` or `0B`.
7469
 * </td>
7470
 * </tr>
7471
 * <tr>
7472
 * <td>`o`, `O`</td>
7473
 * <td>
7474
 * `std::from_chars` with base `8`. The base prefix is `0o` or `0O`, or just
7475
 * `0`.
7476
 * </td>
7477
 * </tr>
7478
 * <tr>
7479
 * <td>`x`, `X`</td>
7480
 * <td>
7481
 * `std::from_chars` with base `16`. The base prefix is `0x` or `0X`.
7482
 * </td>
7483
 * </tr>
7484
 * <tr>
7485
 * <td>`d`</td>
7486
 * <td>
7487
 * `std::from_chars` with base `10`. No base prefix allowed.
7488
 * </td>
7489
 * </tr>
7490
 * <tr>
7491
 * <td>`u`</td>
7492
 * <td>
7493
 * `std::from_chars` with base `10`. No base prefix or `-` sign allowed.
7494
 * </td>
7495
 * </tr>
7496
 * <tr>
7497
 * <td>`i`</td>
7498
 * <td>
7499
 * Detect the base from a possible prefix, defaulting to decimal (base-10).
7500
 * </td>
7501
 * </tr>
7502
 * <tr>
7503
 * <td>`rXX` (where XX = [2, 36])</td>
7504
 * <td>
7505
 * Custom base, without a base prefix (r stands for radix).
7506
 * </td>
7507
 * </tr>
7508
 * <tr>
7509
 * <td>`c`</td>
7510
 * <td>
7511
 * Copies a character (code unit) from the input.
7512
 * </td>
7513
 * </tr>
7514
 * <tr>
7515
 * <td>none</td>
7516
 * <td>
7517
 * Same as `d`.
7518
 * </td>
7519
 * </tr>
7520
 * </table>
7521
 *
7522
 * \subsection type-char Type specifier: characters
7523
 *
7524
 * <table>
7525
 * <caption id="type-char-table">
7526
 * Character types (`char` and `wchar_t`), and code points (`char32_t`)
7527
 * </caption>
7528
 * <tr><th>Type</th> <th>Meaning</th></tr>
7529
 * <tr>
7530
 * <td>none, `c`</td>
7531
 * <td>
7532
 * Copies a character (code point for `char32_t`, code unit otherwise) from the
7533
 * input.
7534
 * </td>
7535
 * </tr>
7536
 * <tr>
7537
 * <td>`b`, `B`, `d`, `i`, `o`, `O`, `u`, `x`, `X`</td>
7538
 * <td>
7539
 * Same as for integers, see above \ref type-int. Not allowed for `char32_t`.
7540
 * </td>
7541
 * </tr>
7542
 * </table>
7543
 *
7544
 * \note When scanning characters (`char` and `wchar_t`), the source range is
7545
 * read a single code unit at a time, and encoding is not respected.
7546
 *
7547
 * \subsection type-float Type specifier: floating-point values
7548
 *
7549
 * Floating-point values are scanned as if by using `std::from_chars`,
7550
 * except a positive `+` sign and a base prefix (like `0x`) are always
7551
 * allowed to be present.
7552
 *
7553
 * <table>
7554
 * <caption id="type-float-table">
7555
 * Floating-point types (`float`, `double`, and `long double`)
7556
 * </caption>
7557
 * <tr><th>Type</th> <th>Meaning</th></tr>
7558
 * <tr>
7559
 * <td>`a`, `A`</td>
7560
 * <td>
7561
 * `std::from_chars` with `std::chars_format::hex`.
7562
 * Prefix `0x`/`0X` is allowed.
7563
 * </td>
7564
 * </tr>
7565
 * <tr>
7566
 * <td>`e`, `E`</td>
7567
 * <td>
7568
 * `std::from_chars` with `std::chars_format::scientific`.
7569
 * </td>
7570
 * </tr>
7571
 * <tr>
7572
 * <td>`f`, `F`</td>
7573
 * <td>
7574
 * `std::from_chars` with `std::chars_format::fixed`.
7575
 * </td>
7576
 * </tr>
7577
 * <tr>
7578
 * <td>`g`, `G`</td>
7579
 * <td>
7580
 * `std::from_chars` with `std::chars_format::general`.
7581
 * </td>
7582
 * </tr>
7583
 * <tr>
7584
 * <td>none</td>
7585
 * <td>
7586
 * `std::from_chars` with `std::chars_format::general | std::chars_format::hex`.
7587
 * Prefix `0x`/`0X` is allowed.
7588
 * </td>
7589
 * </tr>
7590
 * </table>
7591
 *
7592
 * \subsection type-bool Type specifier: booleans
7593
 *
7594
 * <table>
7595
 * <caption id="type-bool-table">
7596
 * `bool`
7597
 * </caption>
7598
 * <tr><th>Type</th> <th>Meaning</th></tr>
7599
 * <tr>
7600
 * <td>`s`</td>
7601
 * <td>
7602
 * Allows for the textual representation (`true` or `false`).
7603
 * </td>
7604
 * </tr>
7605
 * <tr>
7606
 * <td>`b`, `B`, `d`, `i`, `o`, `O`, `u`, `x`, `X`</td>
7607
 * <td>
7608
 * Allows for the integral/numeric representation (`0` or `1`).
7609
 * </td>
7610
 * </tr>
7611
 * <tr>
7612
 * <td>none</td>
7613
 * <td>
7614
 * Allows for both the textual and the integral/numeric representation.
7615
 * </td>
7616
 * </tr>
7617
 * </table>
7618
 */
7619
7620
namespace detail {
7621
/**
7622
 * A runtime format string
7623
 *
7624
 * \ingroup format-string
7625
 */
7626
template <typename CharT>
7627
struct basic_runtime_format_string {
7628
54.2M
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
scn::v3::detail::basic_runtime_format_string<char>::basic_runtime_format_string(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
7628
8.63M
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
scn::v3::detail::basic_runtime_format_string<wchar_t>::basic_runtime_format_string(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
7628
45.6M
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
7629
7630
    basic_runtime_format_string(const basic_runtime_format_string&) = delete;
7631
    basic_runtime_format_string(basic_runtime_format_string&&) = delete;
7632
    basic_runtime_format_string& operator=(const basic_runtime_format_string&) =
7633
        delete;
7634
    basic_runtime_format_string& operator=(basic_runtime_format_string&&) =
7635
        delete;
7636
    ~basic_runtime_format_string() = default;
7637
7638
    std::basic_string_view<CharT> str;
7639
};
7640
}  // namespace detail
7641
7642
/**
7643
 * Create a runtime format string
7644
 *
7645
 * Can be used to avoid compile-time format string checking
7646
 *
7647
 * \ingroup format-string
7648
 */
7649
inline detail::basic_runtime_format_string<char> runtime_format(
7650
    std::string_view s)
7651
8.63M
{
7652
8.63M
    return s;
7653
8.63M
}
7654
inline detail::basic_runtime_format_string<wchar_t> runtime_format(
7655
    std::wstring_view s)
7656
45.6M
{
7657
45.6M
    return s;
7658
45.6M
}
7659
7660
namespace detail {
7661
struct compile_string {};
7662
7663
template <typename Str>
7664
inline constexpr bool is_compile_string_v =
7665
    std::is_base_of_v<compile_string, Str>;
7666
7667
template <typename Scanner, typename = void>
7668
inline constexpr bool scanner_has_format_specs_member_v = false;
7669
template <typename Scanner>
7670
inline constexpr bool scanner_has_format_specs_member_v<
7671
    Scanner,
7672
    std::void_t<decltype(SCN_DECLVAL(Scanner&)._format_specs())>> = true;
7673
7674
template <typename T, typename Source, typename Ctx, typename ParseCtx>
7675
constexpr typename ParseCtx::iterator parse_format_specs(ParseCtx& parse_ctx)
7676
{
7677
    using char_type = typename ParseCtx::char_type;
7678
    using mapped_type = std::conditional_t<
7679
        mapped_type_constant<T, char_type>::value != arg_type::custom_type,
7680
        std::remove_reference_t<decltype(arg_mapper<char_type>().map(
7681
            SCN_DECLVAL(T&)))>,
7682
        T>;
7683
    auto s = typename Ctx::template scanner_type<mapped_type>{};
7684
    auto it = s.parse(parse_ctx)
7685
                  .transform_error([&](scan_error err) constexpr {
7686
                      parse_ctx.on_error(err.msg());
7687
                      return err;
7688
                  })
7689
                  .value_or(parse_ctx.end());
7690
    if constexpr (scanner_has_format_specs_member_v<decltype(s)>) {
7691
        auto& specs = s._format_specs();
7692
        if ((specs.type == presentation_type::regex ||
7693
             specs.type == presentation_type::regex_escaped) &&
7694
            !(ranges::range<Source> && ranges::contiguous_range<Source>)) {
7695
            // clang-format off
7696
            parse_ctx.on_error("Cannot read a regex from a non-contiguous source");
7697
            // clang-format on
7698
        }
7699
    }
7700
    return it;
7701
}
7702
7703
template <typename CharT, typename Source, typename... Args>
7704
class format_string_checker {
7705
public:
7706
    using parse_context_type = compile_parse_context<CharT>;
7707
    static constexpr auto num_args = sizeof...(Args);
7708
7709
    explicit constexpr format_string_checker(
7710
        std::basic_string_view<CharT> format_str)
7711
        : m_parse_context(format_str,
7712
                          num_args,
7713
                          m_types,
7714
                          type_identity<Source>{}),
7715
          m_parse_funcs{&parse_format_specs<Args,
7716
                                            Source,
7717
                                            basic_scan_context<CharT>,
7718
                                            parse_context_type>...},
7719
          m_types{arg_type_constant<Args, CharT>::value...}
7720
    {
7721
    }
7722
7723
    constexpr void on_literal_text(const CharT* begin, const CharT* end) const
7724
    {
7725
        // TODO: Do we want to validate Unicode in format strings?
7726
        // We're dealing with text, so we probably do.
7727
        // We could do codeunit-to-codeunit matching,
7728
        // but that could get messy wrt. whitespace matching.
7729
        // It's simpler to not allow nonsense.
7730
        while (begin != end) {
7731
            const auto len = code_point_length_by_starting_code_unit(*begin);
7732
            if (SCN_UNLIKELY(len == 0 ||
7733
                             static_cast<size_t>(end - begin) < len)) {
7734
                return on_error("Invalid encoding in format string");
7735
            }
7736
7737
            const auto cp = decode_code_point_exhaustive(
7738
                std::basic_string_view<CharT>{begin, len});
7739
            if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7740
                return on_error("Invalid encoding in format string");
7741
            }
7742
7743
            begin += len;
7744
        }
7745
    }
7746
7747
    constexpr auto on_arg_id()
7748
    {
7749
        return m_parse_context.next_arg_id();
7750
    }
7751
    constexpr auto on_arg_id(std::size_t id)
7752
    {
7753
        m_parse_context.check_arg_id(id);
7754
        return id;
7755
    }
7756
7757
    constexpr void on_replacement_field(size_t id, const CharT*)
7758
    {
7759
        m_parse_context.check_arg_can_be_read(id);
7760
        set_arg_as_read(id);
7761
7762
        if (m_types[id] == arg_type::narrow_regex_matches_type ||
7763
            m_types[id] == arg_type::wide_regex_matches_type) {
7764
            // clang-format off
7765
            return on_error("Regular expression needs to be specified when reading regex_matches");
7766
            // clang-format on
7767
        }
7768
    }
7769
7770
    constexpr const CharT* on_format_specs(std::size_t id,
7771
                                           const CharT* begin,
7772
                                           const CharT*)
7773
    {
7774
        m_parse_context.check_arg_can_be_read(id);
7775
        set_arg_as_read(id);
7776
        m_parse_context.advance_to(begin);
7777
        return id < num_args ? m_parse_funcs[id](m_parse_context) : begin;
7778
    }
7779
7780
    constexpr void check_args_exhausted() const
7781
    {
7782
        if (num_args == 0) {
7783
            return;
7784
        }
7785
        for (auto is_set : m_visited_args) {
7786
            if (!is_set) {
7787
                return on_error("Argument list not exhausted");
7788
            }
7789
        }
7790
    }
7791
7792
    void on_error(const char* msg) const
7793
    {
7794
        SCN_UNLIKELY_ATTR
7795
        m_parse_context.on_error(msg);
7796
    }
7797
7798
    // Only to satisfy the concept and eliminate compiler errors,
7799
    // because errors are reported by failing to compile on_error above
7800
    // (it's not constexpr)
7801
    constexpr explicit operator bool() const
7802
    {
7803
        return true;
7804
    }
7805
    constexpr scan_error get_error() const
7806
    {
7807
        return {};
7808
    }
7809
7810
private:
7811
    constexpr void set_arg_as_read(size_t id)
7812
    {
7813
        if (id >= num_args) {
7814
            return on_error("Invalid out-of-range argument ID");
7815
        }
7816
        if (m_visited_args[id]) {
7817
            return on_error("Argument with this ID already scanned");
7818
        }
7819
        m_visited_args[id] = true;
7820
    }
7821
7822
    using parse_func = const CharT* (*)(parse_context_type&);
7823
7824
    parse_context_type m_parse_context;
7825
    parse_func m_parse_funcs[num_args > 0 ? num_args : 1];
7826
    arg_type m_types[num_args > 0 ? num_args : 1];
7827
    bool m_visited_args[num_args > 0 ? num_args : 1] = {false};
7828
};
7829
7830
template <typename Source, typename... Args, typename Str>
7831
auto check_format_string(const Str&)
7832
    -> std::enable_if_t<!is_compile_string_v<Str>>
7833
{
7834
    // TODO: SCN_ENFORE_COMPILE_STRING?
7835
#if 0  // SCN_ENFORE_COMPILE_STRING
7836
    static_assert(dependent_false<Str>::value,
7837
              "SCN_ENFORCE_COMPILE_STRING requires all format "
7838
              "strings to use SCN_STRING.");
7839
#endif
7840
}
7841
7842
template <typename Source, typename... Args, typename Str>
7843
auto check_format_string(Str format_str)
7844
    -> std::enable_if_t<is_compile_string_v<Str>>
7845
{
7846
    using char_type = typename Str::char_type;
7847
7848
    SCN_GCC_PUSH
7849
    SCN_GCC_IGNORE("-Wconversion")
7850
    constexpr auto s = std::basic_string_view<char_type>{format_str};
7851
    SCN_GCC_POP
7852
7853
    using checker = format_string_checker<char_type, Source, Args...>;
7854
    constexpr bool invalid_format =
7855
        (parse_format_string<true>(s, checker(s)), true);
7856
    SCN_UNUSED(invalid_format);
7857
}
7858
7859
template <typename CharT, std::size_t N>
7860
constexpr std::basic_string_view<CharT> compile_string_to_view(
7861
    const CharT (&s)[N])
7862
{
7863
    return {s, N - 1};
7864
}
7865
template <typename CharT>
7866
constexpr std::basic_string_view<CharT> compile_string_to_view(
7867
    std::basic_string_view<CharT> s)
7868
{
7869
    return s;
7870
}
7871
}  // namespace detail
7872
7873
#define SCN_STRING_IMPL(s, base, expl)                                       \
7874
    [] {                                                                     \
7875
        struct SCN_COMPILE_STRING : base {                                   \
7876
            using char_type = ::scn::detail::remove_cvref_t<decltype(s[0])>; \
7877
            SCN_MAYBE_UNUSED constexpr expl                                  \
7878
            operator ::std::basic_string_view<char_type>() const             \
7879
            {                                                                \
7880
                return ::scn::detail::compile_string_to_view<char_type>(s);  \
7881
            }                                                                \
7882
        };                                                                   \
7883
        return SCN_COMPILE_STRING{};                                         \
7884
    }()
7885
7886
#define SCN_STRING(s) SCN_STRING_IMPL(s, ::scn::detail::compile_string, )
7887
7888
/**
7889
 * Compile-time format string
7890
 *
7891
 * \ingroup format-string
7892
 */
7893
template <typename CharT, typename Source, typename... Args>
7894
class basic_scan_format_string {
7895
public:
7896
    SCN_CLANG_PUSH
7897
#if SCN_CLANG >= SCN_COMPILER(10, 0, 0)
7898
    SCN_CLANG_IGNORE("-Wc++20-compat")  // false positive about consteval
7899
#endif
7900
    template <
7901
        typename S,
7902
        std::enable_if_t<
7903
            std::is_convertible_v<const S&, std::basic_string_view<CharT>> &&
7904
            detail::is_not_self<S, basic_scan_format_string>>* = nullptr>
7905
    SCN_CONSTEVAL basic_scan_format_string(const S& s) : m_str(s)
7906
    {
7907
#if SCN_HAS_CONSTEVAL
7908
        using checker = detail::format_string_checker<CharT, Source, Args...>;
7909
        const auto e = detail::parse_format_string<true>(m_str, checker(s));
7910
        SCN_UNUSED(e);
7911
#else
7912
        detail::check_format_string<Source, Args...>(s);
7913
#endif
7914
    }
7915
    SCN_CLANG_POP
7916
7917
    template <
7918
        typename OtherSource,
7919
        std::enable_if_t<std::is_same_v<detail::remove_cvref_t<Source>,
7920
                                        detail::remove_cvref_t<OtherSource>> &&
7921
                         ranges::borrowed_range<Source> ==
7922
                             ranges::borrowed_range<OtherSource>>* = nullptr>
7923
    constexpr basic_scan_format_string(
7924
        const basic_scan_format_string<CharT, OtherSource, Args...>& other)
7925
        : m_str(other.get())
7926
    {
7927
    }
7928
7929
    basic_scan_format_string(detail::basic_runtime_format_string<CharT> r)
7930
        : m_str(r.str)
7931
54.2M
    {
7932
54.2M
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
14.6k
    {
7932
14.6k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
14.6k
    {
7932
14.6k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, unsigned int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
14.6k
    {
7932
14.6k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
14.6k
    {
7932
14.6k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, bool>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
14.6k
    {
7932
14.6k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, void*>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
14.6k
    {
7932
14.6k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
14.6k
    {
7932
14.6k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
14.6k
    {
7932
14.6k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
14.6k
    {
7932
14.6k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, wchar_t>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
29.3k
    {
7932
29.3k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
29.3k
    {
7932
29.3k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, unsigned int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
29.3k
    {
7932
29.3k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
29.3k
    {
7932
29.3k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, bool>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
29.3k
    {
7932
29.3k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, void*>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
29.3k
    {
7932
29.3k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
29.3k
    {
7932
29.3k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
29.3k
    {
7932
29.3k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
29.3k
    {
7932
29.3k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
311k
    {
7932
311k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
300k
    {
7932
300k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
393k
    {
7932
393k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
339k
    {
7932
339k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
400k
    {
7932
400k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
343k
    {
7932
343k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
313k
    {
7932
313k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
302k
    {
7932
302k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
394k
    {
7932
394k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
341k
    {
7932
341k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
401k
    {
7932
401k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
345k
    {
7932
345k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.3k
    {
7932
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.3k
    {
7932
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.4k
    {
7932
78.4k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.3k
    {
7932
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.6k
    {
7932
78.6k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.4k
    {
7932
78.4k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.3k
    {
7932
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.3k
    {
7932
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.4k
    {
7932
78.4k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.3k
    {
7932
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.6k
    {
7932
78.6k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
78.4k
    {
7932
78.4k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
127k
    {
7932
127k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
127k
    {
7932
127k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
129k
    {
7932
129k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
14.6M
    {
7932
14.6M
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
14.6M
    {
7932
14.6M
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
14.6M
    {
7932
14.6M
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
621k
    {
7932
621k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
671k
    {
7932
671k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
680k
    {
7932
680k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
615k
    {
7932
615k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
665k
    {
7932
665k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<char>)
Line
Count
Source
7931
674k
    {
7932
674k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
72.7k
    {
7932
72.7k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
72.8k
    {
7932
72.8k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
72.9k
    {
7932
72.9k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
72.7k
    {
7932
72.7k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
72.7k
    {
7932
72.7k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>::basic_scan_format_string(scn::v3::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
7931
72.8k
    {
7932
72.8k
    }
7933
7934
    constexpr operator std::basic_string_view<CharT>() const
7935
54.2M
    {
7936
54.2M
        return m_str;
7937
54.2M
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, char>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
14.6k
    {
7936
14.6k
        return m_str;
7937
14.6k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
14.6k
    {
7936
14.6k
        return m_str;
7937
14.6k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, unsigned int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
14.6k
    {
7936
14.6k
        return m_str;
7937
14.6k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
14.6k
    {
7936
14.6k
        return m_str;
7937
14.6k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, bool>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
14.6k
    {
7936
14.6k
        return m_str;
7937
14.6k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, void*>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
14.6k
    {
7936
14.6k
        return m_str;
7937
14.6k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
14.6k
    {
7936
14.6k
        return m_str;
7937
14.6k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
14.6k
    {
7936
14.6k
        return m_str;
7937
14.6k
    }
scn::v3::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
14.6k
    {
7936
14.6k
        return m_str;
7937
14.6k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, wchar_t>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
29.3k
    {
7936
29.3k
        return m_str;
7937
29.3k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
29.3k
    {
7936
29.3k
        return m_str;
7937
29.3k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, unsigned int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
29.3k
    {
7936
29.3k
        return m_str;
7937
29.3k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, double>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
29.3k
    {
7936
29.3k
        return m_str;
7937
29.3k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, bool>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
29.3k
    {
7936
29.3k
        return m_str;
7937
29.3k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, void*>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
29.3k
    {
7936
29.3k
        return m_str;
7937
29.3k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
29.3k
    {
7936
29.3k
        return m_str;
7937
29.3k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
29.3k
    {
7936
29.3k
        return m_str;
7937
29.3k
    }
scn::v3::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
29.3k
    {
7936
29.3k
        return m_str;
7937
29.3k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
311k
    {
7936
311k
        return m_str;
7937
311k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
300k
    {
7936
300k
        return m_str;
7937
300k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
393k
    {
7936
393k
        return m_str;
7937
393k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
339k
    {
7936
339k
        return m_str;
7937
339k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
400k
    {
7936
400k
        return m_str;
7937
400k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
343k
    {
7936
343k
        return m_str;
7937
343k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
313k
    {
7936
313k
        return m_str;
7937
313k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
302k
    {
7936
302k
        return m_str;
7937
302k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
394k
    {
7936
394k
        return m_str;
7937
394k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
341k
    {
7936
341k
        return m_str;
7937
341k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
401k
    {
7936
401k
        return m_str;
7937
401k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
345k
    {
7936
345k
        return m_str;
7937
345k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.3k
    {
7936
78.3k
        return m_str;
7937
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.3k
    {
7936
78.3k
        return m_str;
7937
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.4k
    {
7936
78.4k
        return m_str;
7937
78.4k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.3k
    {
7936
78.3k
        return m_str;
7937
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.6k
    {
7936
78.6k
        return m_str;
7937
78.6k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.4k
    {
7936
78.4k
        return m_str;
7937
78.4k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.3k
    {
7936
78.3k
        return m_str;
7937
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.3k
    {
7936
78.3k
        return m_str;
7937
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.4k
    {
7936
78.4k
        return m_str;
7937
78.4k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.3k
    {
7936
78.3k
        return m_str;
7937
78.3k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.6k
    {
7936
78.6k
        return m_str;
7937
78.6k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
78.4k
    {
7936
78.4k
        return m_str;
7937
78.4k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
127k
    {
7936
127k
        return m_str;
7937
127k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
127k
    {
7936
127k
        return m_str;
7937
127k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
129k
    {
7936
129k
        return m_str;
7937
129k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
14.6M
    {
7936
14.6M
        return m_str;
7937
14.6M
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
14.6M
    {
7936
14.6M
        return m_str;
7937
14.6M
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
14.6M
    {
7936
14.6M
        return m_str;
7937
14.6M
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
621k
    {
7936
621k
        return m_str;
7937
621k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
671k
    {
7936
671k
        return m_str;
7937
671k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
680k
    {
7936
680k
        return m_str;
7937
680k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
615k
    {
7936
615k
        return m_str;
7937
615k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
665k
    {
7936
665k
        return m_str;
7937
665k
    }
scn::v3::basic_scan_format_string<char, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
7935
674k
    {
7936
674k
        return m_str;
7937
674k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
72.7k
    {
7936
72.7k
        return m_str;
7937
72.7k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
72.8k
    {
7936
72.8k
        return m_str;
7937
72.8k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
72.9k
    {
7936
72.9k
        return m_str;
7937
72.9k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
72.7k
    {
7936
72.7k
        return m_str;
7937
72.7k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
72.7k
    {
7936
72.7k
        return m_str;
7937
72.7k
    }
scn::v3::basic_scan_format_string<wchar_t, scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
7935
72.8k
    {
7936
72.8k
        return m_str;
7937
72.8k
    }
7938
    constexpr std::basic_string_view<CharT> get() const
7939
    {
7940
        return m_str;
7941
    }
7942
7943
private:
7944
    std::basic_string_view<CharT> m_str;
7945
};
7946
7947
namespace detail {
7948
class locale_ref {
7949
#if !SCN_DISABLE_LOCALE
7950
public:
7951
66.6M
    constexpr locale_ref() = default;
7952
7953
    template <typename Locale>
7954
    explicit locale_ref(const Locale& loc);
7955
7956
    constexpr explicit operator bool() const noexcept
7957
0
    {
7958
0
        return m_locale != nullptr;
7959
0
    }
7960
7961
    template <typename Locale>
7962
    Locale get() const;
7963
7964
private:
7965
    const void* m_locale{nullptr};
7966
#else
7967
public:
7968
    constexpr locale_ref() = default;
7969
7970
    template <typename T>
7971
    constexpr explicit locale_ref(T&&)
7972
    {
7973
    }
7974
7975
    constexpr explicit operator bool() const noexcept
7976
    {
7977
        return true;
7978
    }
7979
#endif
7980
};
7981
}  // namespace detail
7982
7983
/////////////////////////////////////////////////////////////////
7984
// scan_context
7985
/////////////////////////////////////////////////////////////////
7986
7987
namespace detail {
7988
template <typename I>
7989
using apply_cmp_with_nullptr = decltype(SCN_DECLVAL(const I&) == nullptr);
7990
template <typename I>
7991
inline constexpr bool is_comparable_with_nullptr =
7992
    mp_valid_v<apply_cmp_with_nullptr, I>;
7993
7994
template <typename Args>
7995
class scan_context_base {
7996
public:
7997
    /// Get argument at index `id`
7998
    constexpr auto arg(size_t id) const noexcept
7999
30.1M
    {
8000
30.1M
        return m_args.get(id);
8001
30.1M
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> > >::arg(unsigned long) const
Line
Count
Source
7999
6.93M
    {
8000
6.93M
        return m_args.get(id);
8001
6.93M
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> > >::arg(unsigned long) const
Line
Count
Source
7999
23.2M
    {
8000
23.2M
        return m_args.get(id);
8001
23.2M
    }
8002
8003
    constexpr const Args& args() const
8004
19.7k
    {
8005
19.7k
        return m_args;
8006
19.7k
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> > >::args() const
Line
Count
Source
8004
12.8k
    {
8005
12.8k
        return m_args;
8006
12.8k
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> > >::args() const
Line
Count
Source
8004
6.91k
    {
8005
6.91k
        return m_args;
8006
6.91k
    }
8007
8008
    SCN_NODISCARD constexpr locale_ref locale() const
8009
29.7M
    {
8010
29.7M
        return m_locale;
8011
29.7M
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> > >::locale() const
Line
Count
Source
8009
6.78M
    {
8010
6.78M
        return m_locale;
8011
6.78M
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> > >::locale() const
Line
Count
Source
8009
22.9M
    {
8010
22.9M
        return m_locale;
8011
22.9M
    }
8012
8013
protected:
8014
    scan_context_base(Args args, locale_ref loc)
8015
        : m_args(SCN_MOVE(args)), m_locale(SCN_MOVE(loc))
8016
30.4M
    {
8017
30.4M
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> > >::scan_context_base(scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >, scn::v3::detail::locale_ref)
Line
Count
Source
8016
6.95M
    {
8017
6.95M
    }
scn::v3::detail::scan_context_base<scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> > >::scan_context_base(scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >, scn::v3::detail::locale_ref)
Line
Count
Source
8016
23.4M
    {
8017
23.4M
    }
8018
8019
    Args m_args;
8020
    locale_ref m_locale;
8021
};
8022
}  // namespace detail
8023
8024
/**
8025
 * \defgroup ctx Contexts and scanners
8026
 *
8027
 * \brief Lower-level APIs used for scanning individual values
8028
 *
8029
 * \section user-defined Scanning user-defined types
8030
 *
8031
 * User-defined types can be scanned by specializing the class template
8032
 * `scn::scanner`.
8033
 *
8034
 * \code{.cpp}
8035
 * struct mytype {
8036
 *   int key;
8037
 *   std::string value;
8038
 * };
8039
 *
8040
 * template <>
8041
 * struct scn::scanner<mytype> {
8042
 *   template <typename ParseContext>
8043
 *   constexpr auto parse(ParseCtx& pctx)
8044
 *     -> scan_expected<typename ParseContext::iterator> {
8045
 *     // parse() implementation just returning begin():
8046
 *     // only permits empty format specifiers
8047
 *     return pctx.begin();
8048
 *   }
8049
 *
8050
 *   template <typename Context>
8051
 *   auto scan(mytype& val, Context& ctx)
8052
 *     -> scan_expected<typename Context::iterator> {
8053
 *     return scn::scan<int, std::string>(ctx.range(), "{}: {}")
8054
 *       .transform([&](auto result) {
8055
 *         std::tie(val.key, val.value) = std::move(result->values());
8056
 *         return result.begin();
8057
 *       });
8058
 *   }
8059
 * };
8060
 * \endcode
8061
 *
8062
 * See also
8063
 * \ref g-usertypes
8064
 */
8065
8066
/**
8067
 * Scanning context.
8068
 *
8069
 * \ingroup ctx
8070
 */
8071
template <typename CharT>
8072
class basic_scan_context : public detail::scan_context_base<
8073
                               basic_scan_args<basic_scan_context<CharT>>> {
8074
    using base = detail::scan_context_base<basic_scan_args<basic_scan_context>>;
8075
8076
public:
8077
    /// Character type of the input
8078
    using char_type = CharT;
8079
    using buffer_type = detail::basic_scan_buffer<char_type>;
8080
    using range_type = typename buffer_type::range_type;
8081
    using iterator = ranges::iterator_t<range_type>;
8082
    using sentinel = ranges::sentinel_t<range_type>;
8083
    using parse_context_type = basic_scan_parse_context<char_type>;
8084
8085
    using args_type = basic_scan_args<basic_scan_context>;
8086
    using arg_type = basic_scan_arg<basic_scan_context>;
8087
8088
    /**
8089
     * The scanner type associated with this scanning context.
8090
     */
8091
    template <typename T>
8092
    using scanner_type = scanner<T, char_type>;
8093
8094
    constexpr basic_scan_context(iterator curr,
8095
                                 args_type a,
8096
                                 detail::locale_ref loc = {})
8097
        : base(SCN_MOVE(a), loc), m_current(curr)
8098
11.3M
    {
8099
11.3M
    }
scn::v3::basic_scan_context<char>::basic_scan_context(scn::v3::detail::basic_scan_buffer<char>::forward_iterator, scn::v3::basic_scan_args<scn::v3::basic_scan_context<char> >, scn::v3::detail::locale_ref)
Line
Count
Source
8098
3.39M
    {
8099
3.39M
    }
scn::v3::basic_scan_context<wchar_t>::basic_scan_context(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v3::basic_scan_args<scn::v3::basic_scan_context<wchar_t> >, scn::v3::detail::locale_ref)
Line
Count
Source
8098
7.93M
    {
8099
7.93M
    }
8100
8101
    basic_scan_context(const basic_scan_context&) = delete;
8102
    basic_scan_context& operator=(const basic_scan_context&) = delete;
8103
8104
    basic_scan_context(basic_scan_context&&) = default;
8105
    basic_scan_context& operator=(basic_scan_context&&) = default;
8106
    ~basic_scan_context() = default;
8107
8108
    /**
8109
     * Returns an iterator pointing to the current position in the source
8110
     * range.
8111
     */
8112
    constexpr iterator begin() const
8113
32.8M
    {
8114
32.8M
        return m_current;
8115
32.8M
    }
scn::v3::basic_scan_context<char>::begin() const
Line
Count
Source
8113
9.79M
    {
8114
9.79M
        return m_current;
8115
9.79M
    }
scn::v3::basic_scan_context<wchar_t>::begin() const
Line
Count
Source
8113
23.0M
    {
8114
23.0M
        return m_current;
8115
23.0M
    }
8116
8117
    /**
8118
     * Returns a sentinel pointing to the end of the source range.
8119
     */
8120
    constexpr sentinel end() const
8121
11.1M
    {
8122
11.1M
        return ranges::default_sentinel;
8123
11.1M
    }
scn::v3::basic_scan_context<char>::end() const
Line
Count
Source
8121
3.31M
    {
8122
3.31M
        return ranges::default_sentinel;
8123
3.31M
    }
scn::v3::basic_scan_context<wchar_t>::end() const
Line
Count
Source
8121
7.79M
    {
8122
7.79M
        return ranges::default_sentinel;
8123
7.79M
    }
8124
8125
    /**
8126
     * Returns a subrange over `[begin(), end())`
8127
     */
8128
    constexpr auto range() const
8129
11.1M
    {
8130
11.1M
        return ranges::subrange{begin(), end()};
8131
11.1M
    }
scn::v3::basic_scan_context<char>::range() const
Line
Count
Source
8129
3.31M
    {
8130
3.31M
        return ranges::subrange{begin(), end()};
8131
3.31M
    }
scn::v3::basic_scan_context<wchar_t>::range() const
Line
Count
Source
8129
7.79M
    {
8130
7.79M
        return ranges::subrange{begin(), end()};
8131
7.79M
    }
8132
8133
    /// Advances the beginning of the source range to `it`
8134
    void advance_to(iterator it)
8135
10.4M
    {
8136
10.4M
        m_current = SCN_MOVE(it);
8137
10.4M
    }
scn::v3::basic_scan_context<char>::advance_to(scn::v3::detail::basic_scan_buffer<char>::forward_iterator)
Line
Count
Source
8135
3.09M
    {
8136
3.09M
        m_current = SCN_MOVE(it);
8137
3.09M
    }
scn::v3::basic_scan_context<wchar_t>::advance_to(scn::v3::detail::basic_scan_buffer<wchar_t>::forward_iterator)
Line
Count
Source
8135
7.33M
    {
8136
7.33M
        m_current = SCN_MOVE(it);
8137
7.33M
    }
8138
8139
private:
8140
    iterator m_current;
8141
};
8142
8143
namespace detail {
8144
template <typename T, typename ParseCtx>
8145
constexpr scan_expected<typename ParseCtx::iterator>
8146
scanner_parse_for_builtin_type(ParseCtx& pctx, format_specs& specs);
8147
8148
template <typename T, typename Context>
8149
scan_expected<typename Context::iterator>
8150
scanner_scan_for_builtin_type(T& val, Context& ctx, const format_specs& specs);
8151
}  // namespace detail
8152
8153
/////////////////////////////////////////////////////////////////
8154
// scanner
8155
/////////////////////////////////////////////////////////////////
8156
8157
/**
8158
 * `scanner` specialization for all built-in types
8159
 *
8160
 * \ingroup ctx
8161
 */
8162
template <typename T, typename CharT>
8163
struct scanner<T,
8164
               CharT,
8165
               std::enable_if_t<detail::arg_type_constant<T, CharT>::value !=
8166
                                    detail::arg_type::custom_type &&
8167
                                !detail::is_type_disabled<T>>> {
8168
    template <typename ParseCtx>
8169
    constexpr auto parse(ParseCtx& pctx)
8170
        -> scan_expected<typename ParseCtx::iterator>
8171
    {
8172
        return detail::scanner_parse_for_builtin_type<T>(pctx, m_specs);
8173
    }
8174
8175
    template <typename Context>
8176
    scan_expected<typename Context::iterator> scan(T& val, Context& ctx) const
8177
    {
8178
        return detail::scanner_scan_for_builtin_type(val, ctx, m_specs);
8179
    }
8180
8181
    constexpr auto& _format_specs()
8182
    {
8183
        return m_specs;
8184
    }
8185
8186
private:
8187
    detail::format_specs m_specs;
8188
};
8189
8190
namespace detail {
8191
template <typename T, typename ParseCtx>
8192
constexpr scan_expected<typename ParseCtx::iterator>
8193
scanner_parse_for_builtin_type(ParseCtx& pctx, format_specs& specs)
8194
{
8195
    using char_type = typename ParseCtx::char_type;
8196
8197
    auto begin = pctx.begin();
8198
    const auto end = pctx.end();
8199
    if (begin == end) {
8200
        return begin;
8201
    }
8202
8203
    using handler_type = specs_setter;
8204
    const auto type = arg_type_constant<T, char_type>::value;
8205
    auto checker =
8206
        detail::specs_checker<handler_type>(handler_type(specs), type);
8207
8208
    const auto it =
8209
        detail::parse_format_specs(to_address(begin), to_address(end), checker);
8210
    if (auto e = checker.get_error(); SCN_UNLIKELY(!e)) {
8211
        return unexpected(e);
8212
    }
8213
8214
    switch (type) {
8215
        case arg_type::none_type:
8216
            SCN_FALLTHROUGH;
8217
        case arg_type::custom_type:
8218
            SCN_ENSURE(false);
8219
            break;
8220
8221
        case arg_type::bool_type:
8222
            check_bool_type_specs(specs, checker);
8223
            break;
8224
8225
        case arg_type::schar_type:
8226
        case arg_type::short_type:
8227
        case arg_type::int_type:
8228
        case arg_type::long_type:
8229
        case arg_type::llong_type:
8230
        case arg_type::uchar_type:
8231
        case arg_type::ushort_type:
8232
        case arg_type::uint_type:
8233
        case arg_type::ulong_type:
8234
        case arg_type::ullong_type:
8235
            check_int_type_specs(specs, checker);
8236
            break;
8237
8238
        case arg_type::narrow_character_type:
8239
        case arg_type::wide_character_type:
8240
        case arg_type::code_point_type:
8241
            check_char_type_specs(specs, checker);
8242
            break;
8243
8244
        case arg_type::float_type:
8245
        case arg_type::double_type:
8246
        case arg_type::ldouble_type:
8247
            check_float_type_specs(specs, checker);
8248
            break;
8249
8250
        case arg_type::narrow_string_type:
8251
        case arg_type::narrow_string_view_type:
8252
        case arg_type::wide_string_type:
8253
        case arg_type::wide_string_view_type:
8254
            check_string_type_specs(specs, checker);
8255
            break;
8256
8257
        case arg_type::pointer_type:
8258
            check_pointer_type_specs(specs, checker);
8259
            break;
8260
8261
        case arg_type::narrow_regex_matches_type:
8262
        case arg_type::wide_regex_matches_type:
8263
            check_regex_type_specs(specs, checker);
8264
            break;
8265
8266
            SCN_CLANG_PUSH
8267
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8268
8269
        default:
8270
            SCN_ENSURE(false);
8271
            SCN_UNREACHABLE;
8272
8273
            SCN_CLANG_POP
8274
    }
8275
8276
    if (auto e = checker.get_error(); SCN_UNLIKELY(!e)) {
8277
        return unexpected(e);
8278
    }
8279
8280
    return {it};
8281
}
8282
}  // namespace detail
8283
8284
/**
8285
 * Type for discarding any scanned value.
8286
 * Example:
8287
 *
8288
 * \code{.cpp}
8289
 * auto r = scn::scan<scn::discard<int>>("42", "{}");
8290
 * // r.has_value() == true
8291
 * // decltype(r->value()) is scn::discard<int>
8292
 * \endcode
8293
 *
8294
 * \ingroup format-string
8295
 */
8296
template <typename T>
8297
struct discard {
8298
    constexpr discard() = default;
8299
8300
    constexpr discard(const T&) noexcept {}
8301
    constexpr discard(T&&) noexcept {}
8302
8303
    constexpr discard& operator=(const T&) noexcept
8304
    {
8305
        return *this;
8306
    }
8307
    constexpr discard& operator=(T&&) noexcept
8308
    {
8309
        return *this;
8310
    }
8311
};
8312
8313
template <typename T, typename CharT>
8314
struct scanner<discard<T>, CharT> : public scanner<T, CharT> {
8315
    template <typename Context>
8316
    auto scan(discard<T>&, Context& ctx) const
8317
    {
8318
        T val{};
8319
        return scanner<T, CharT>::scan(val, ctx);
8320
    }
8321
};
8322
8323
namespace detail {
8324
template <typename Range>
8325
scan_expected<ranges::iterator_t<Range>> internal_skip_classic_whitespace(
8326
    Range r,
8327
    bool allow_exhaustion);
8328
8329
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(T, Context) \
8330
    extern template scan_expected<Context::iterator>         \
8331
    scanner_scan_for_builtin_type(T&, Context&, const format_specs&);
8332
8333
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_CTX(Context)                   \
8334
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(char, Context)                \
8335
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(wchar_t, Context)             \
8336
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(signed char, Context)         \
8337
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(signed char, Context)         \
8338
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(short, Context)               \
8339
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(int, Context)                 \
8340
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long, Context)                \
8341
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long long, Context)           \
8342
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned char, Context)       \
8343
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned short, Context)      \
8344
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned int, Context)        \
8345
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned long, Context)       \
8346
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned long long, Context)  \
8347
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(float, Context)               \
8348
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(double, Context)              \
8349
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long double, Context)         \
8350
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::string, Context)         \
8351
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::wstring, Context)        \
8352
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(                              \
8353
        std::basic_string_view<Context::char_type>, Context)               \
8354
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(regex_matches, Context)       \
8355
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(wregex_matches, Context)      \
8356
    extern template scan_expected<ranges::iterator_t<Context::range_type>> \
8357
    internal_skip_classic_whitespace(Context::range_type, bool);
8358
8359
SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_CTX(scan_context)
8360
8361
}  // namespace detail
8362
8363
/////////////////////////////////////////////////////////////////
8364
// visit_scan_arg
8365
/////////////////////////////////////////////////////////////////
8366
8367
/**
8368
 * Visit a `basic_scan_arg` with `Visitor`.
8369
 * Calls `vis` with the value stored in `arg`.
8370
 * If no value is contained in `arg`, calls `vis` with a `monostate`.
8371
 *
8372
 * \return `vis(x)`, where `x` is either a reference to the value contained
8373
 * in `arg`, or a `basic_scan_arg::handle`.
8374
 */
8375
template <typename Visitor, typename Ctx>
8376
constexpr decltype(auto) visit_scan_arg(Visitor&& vis, basic_scan_arg<Ctx>& arg)
8377
65.4M
{
8378
65.4M
#define SCN_VISIT(Type)                                         \
8379
65.4M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
65.4M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
65.4M
    }                                                           \
8382
65.4M
    else {                                                      \
8383
65.4M
        return vis(monostate_val);                              \
8384
65.4M
    }
8385
8386
65.4M
    monostate monostate_val{};
8387
8388
65.4M
    switch (arg.m_type) {
8389
772k
        case detail::arg_type::schar_type:
8390
772k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
955k
        case detail::arg_type::int_type:
8394
955k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
958k
        case detail::arg_type::llong_type:
8398
958k
            SCN_VISIT(long long);
8399
744k
        case detail::arg_type::uchar_type:
8400
744k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
840k
        case detail::arg_type::uint_type:
8404
840k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
835k
        case detail::arg_type::ullong_type:
8408
835k
            SCN_VISIT(unsigned long long);
8409
13.0k
        case detail::arg_type::pointer_type:
8410
13.0k
            SCN_VISIT(void*);
8411
13.1k
        case detail::arg_type::bool_type:
8412
13.1k
            SCN_VISIT(bool);
8413
12.1k
        case detail::arg_type::narrow_character_type:
8414
12.1k
            SCN_VISIT(char);
8415
968
        case detail::arg_type::wide_character_type:
8416
968
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
1.52M
        case detail::arg_type::float_type:
8420
1.52M
            SCN_VISIT(float);
8421
1.65M
        case detail::arg_type::double_type:
8422
1.65M
            SCN_VISIT(double);
8423
1.66M
        case detail::arg_type::ldouble_type:
8424
1.66M
            SCN_VISIT(long double);
8425
167k
        case detail::arg_type::narrow_string_view_type:
8426
167k
            SCN_VISIT(std::string_view);
8427
324k
        case detail::arg_type::narrow_string_type:
8428
324k
            SCN_VISIT(std::string);
8429
18.3M
        case detail::arg_type::wide_string_view_type:
8430
18.3M
            SCN_VISIT(std::wstring_view);
8431
36.6M
        case detail::arg_type::wide_string_type:
8432
36.6M
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
65.4M
            SCN_CLANG_POP
8456
65.4M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::default_arg_reader<scn::v3::impl::basic_contiguous_scan_context<char> >, scn::v3::basic_scan_context<char> >(scn::v3::impl::default_arg_reader<scn::v3::impl::basic_contiguous_scan_context<char> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >&)
Line
Count
Source
8377
1.34M
{
8378
1.34M
#define SCN_VISIT(Type)                                         \
8379
1.34M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
1.34M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
1.34M
    }                                                           \
8382
1.34M
    else {                                                      \
8383
1.34M
        return vis(monostate_val);                              \
8384
1.34M
    }
8385
8386
1.34M
    monostate monostate_val{};
8387
8388
1.34M
    switch (arg.m_type) {
8389
78.8k
        case detail::arg_type::schar_type:
8390
78.8k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
92.5k
        case detail::arg_type::int_type:
8394
92.5k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
92.8k
        case detail::arg_type::llong_type:
8398
92.8k
            SCN_VISIT(long long);
8399
69.9k
        case detail::arg_type::uchar_type:
8400
69.9k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
79.4k
        case detail::arg_type::uint_type:
8404
79.4k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
79.0k
        case detail::arg_type::ullong_type:
8408
79.0k
            SCN_VISIT(unsigned long long);
8409
1.36k
        case detail::arg_type::pointer_type:
8410
1.36k
            SCN_VISIT(void*);
8411
1.36k
        case detail::arg_type::bool_type:
8412
1.36k
            SCN_VISIT(bool);
8413
1.36k
        case detail::arg_type::narrow_character_type:
8414
1.36k
            SCN_VISIT(char);
8415
0
        case detail::arg_type::wide_character_type:
8416
0
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
204k
        case detail::arg_type::float_type:
8420
204k
            SCN_VISIT(float);
8421
227k
        case detail::arg_type::double_type:
8422
227k
            SCN_VISIT(double);
8423
230k
        case detail::arg_type::ldouble_type:
8424
230k
            SCN_VISIT(long double);
8425
92.1k
        case detail::arg_type::narrow_string_view_type:
8426
92.1k
            SCN_VISIT(std::string_view);
8427
92.1k
        case detail::arg_type::narrow_string_type:
8428
92.1k
            SCN_VISIT(std::string);
8429
0
        case detail::arg_type::wide_string_view_type:
8430
0
            SCN_VISIT(std::wstring_view);
8431
1.36k
        case detail::arg_type::wide_string_type:
8432
1.36k
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
1.34M
            SCN_CLANG_POP
8456
1.34M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::default_arg_reader<scn::v3::basic_scan_context<char> >, scn::v3::basic_scan_context<char> >(scn::v3::impl::default_arg_reader<scn::v3::basic_scan_context<char> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >&)
Line
Count
Source
8377
1.18M
{
8378
1.18M
#define SCN_VISIT(Type)                                         \
8379
1.18M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
1.18M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
1.18M
    }                                                           \
8382
1.18M
    else {                                                      \
8383
1.18M
        return vis(monostate_val);                              \
8384
1.18M
    }
8385
8386
1.18M
    monostate monostate_val{};
8387
8388
1.18M
    switch (arg.m_type) {
8389
78.7k
        case detail::arg_type::schar_type:
8390
78.7k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
89.5k
        case detail::arg_type::int_type:
8394
89.5k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
91.0k
        case detail::arg_type::llong_type:
8398
91.0k
            SCN_VISIT(long long);
8399
69.8k
        case detail::arg_type::uchar_type:
8400
69.8k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
77.8k
        case detail::arg_type::uint_type:
8404
77.8k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
78.8k
        case detail::arg_type::ullong_type:
8408
78.8k
            SCN_VISIT(unsigned long long);
8409
0
        case detail::arg_type::pointer_type:
8410
0
            SCN_VISIT(void*);
8411
0
        case detail::arg_type::bool_type:
8412
0
            SCN_VISIT(bool);
8413
0
        case detail::arg_type::narrow_character_type:
8414
0
            SCN_VISIT(char);
8415
0
        case detail::arg_type::wide_character_type:
8416
0
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
188k
        case detail::arg_type::float_type:
8420
188k
            SCN_VISIT(float);
8421
210k
        case detail::arg_type::double_type:
8422
210k
            SCN_VISIT(double);
8423
213k
        case detail::arg_type::ldouble_type:
8424
213k
            SCN_VISIT(long double);
8425
0
        case detail::arg_type::narrow_string_view_type:
8426
0
            SCN_VISIT(std::string_view);
8427
92.0k
        case detail::arg_type::narrow_string_type:
8428
92.0k
            SCN_VISIT(std::string);
8429
0
        case detail::arg_type::wide_string_view_type:
8430
0
            SCN_VISIT(std::wstring_view);
8431
0
        case detail::arg_type::wide_string_type:
8432
0
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
1.18M
            SCN_CLANG_POP
8456
1.18M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
Unexecuted instantiation: decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::custom_reader<scn::v3::basic_scan_context<char> >, scn::v3::basic_scan_context<char> >(scn::v3::impl::custom_reader<scn::v3::basic_scan_context<char> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >&)
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::arg_reader<scn::v3::impl::basic_contiguous_scan_context<char> >, scn::v3::basic_scan_context<char> >(scn::v3::impl::arg_reader<scn::v3::impl::basic_contiguous_scan_context<char> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >&)
Line
Count
Source
8377
3.45M
{
8378
3.45M
#define SCN_VISIT(Type)                                         \
8379
3.45M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
3.45M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
3.45M
    }                                                           \
8382
3.45M
    else {                                                      \
8383
3.45M
        return vis(monostate_val);                              \
8384
3.45M
    }
8385
8386
3.45M
    monostate monostate_val{};
8387
8388
3.45M
    switch (arg.m_type) {
8389
247k
        case detail::arg_type::schar_type:
8390
247k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
331k
        case detail::arg_type::int_type:
8394
331k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
326k
        case detail::arg_type::llong_type:
8398
326k
            SCN_VISIT(long long);
8399
242k
        case detail::arg_type::uchar_type:
8400
242k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
286k
        case detail::arg_type::uint_type:
8404
286k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
278k
        case detail::arg_type::ullong_type:
8408
278k
            SCN_VISIT(unsigned long long);
8409
10.7k
        case detail::arg_type::pointer_type:
8410
10.7k
            SCN_VISIT(void*);
8411
10.8k
        case detail::arg_type::bool_type:
8412
10.8k
            SCN_VISIT(bool);
8413
10.7k
        case detail::arg_type::narrow_character_type:
8414
10.7k
            SCN_VISIT(char);
8415
0
        case detail::arg_type::wide_character_type:
8416
0
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
485k
        case detail::arg_type::float_type:
8420
485k
            SCN_VISIT(float);
8421
531k
        case detail::arg_type::double_type:
8422
531k
            SCN_VISIT(double);
8423
526k
        case detail::arg_type::ldouble_type:
8424
526k
            SCN_VISIT(long double);
8425
74.9k
        case detail::arg_type::narrow_string_view_type:
8426
74.9k
            SCN_VISIT(std::string_view);
8427
74.9k
        case detail::arg_type::narrow_string_type:
8428
74.9k
            SCN_VISIT(std::string);
8429
0
        case detail::arg_type::wide_string_view_type:
8430
0
            SCN_VISIT(std::wstring_view);
8431
10.7k
        case detail::arg_type::wide_string_type:
8432
10.7k
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
3.45M
            SCN_CLANG_POP
8456
3.45M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::arg_reader<scn::v3::basic_scan_context<char> >, scn::v3::basic_scan_context<char> >(scn::v3::impl::arg_reader<scn::v3::basic_scan_context<char> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<char> >&)
Line
Count
Source
8377
3.31M
{
8378
3.31M
#define SCN_VISIT(Type)                                         \
8379
3.31M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
3.31M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
3.31M
    }                                                           \
8382
3.31M
    else {                                                      \
8383
3.31M
        return vis(monostate_val);                              \
8384
3.31M
    }
8385
8386
3.31M
    monostate monostate_val{};
8387
8388
3.31M
    switch (arg.m_type) {
8389
249k
        case detail::arg_type::schar_type:
8390
249k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
322k
        case detail::arg_type::int_type:
8394
322k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
328k
        case detail::arg_type::llong_type:
8398
328k
            SCN_VISIT(long long);
8399
244k
        case detail::arg_type::uchar_type:
8400
244k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
277k
        case detail::arg_type::uint_type:
8404
277k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
280k
        case detail::arg_type::ullong_type:
8408
280k
            SCN_VISIT(unsigned long long);
8409
0
        case detail::arg_type::pointer_type:
8410
0
            SCN_VISIT(void*);
8411
0
        case detail::arg_type::bool_type:
8412
0
            SCN_VISIT(bool);
8413
0
        case detail::arg_type::narrow_character_type:
8414
0
            SCN_VISIT(char);
8415
0
        case detail::arg_type::wide_character_type:
8416
0
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
490k
        case detail::arg_type::float_type:
8420
490k
            SCN_VISIT(float);
8421
525k
        case detail::arg_type::double_type:
8422
525k
            SCN_VISIT(double);
8423
532k
        case detail::arg_type::ldouble_type:
8424
532k
            SCN_VISIT(long double);
8425
0
        case detail::arg_type::narrow_string_view_type:
8426
0
            SCN_VISIT(std::string_view);
8427
64.7k
        case detail::arg_type::narrow_string_type:
8428
64.7k
            SCN_VISIT(std::string);
8429
0
        case detail::arg_type::wide_string_view_type:
8430
0
            SCN_VISIT(std::wstring_view);
8431
0
        case detail::arg_type::wide_string_type:
8432
0
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
3.31M
            SCN_CLANG_POP
8456
3.31M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::default_arg_reader<scn::v3::impl::basic_contiguous_scan_context<wchar_t> >, scn::v3::basic_scan_context<wchar_t> >(scn::v3::impl::default_arg_reader<scn::v3::impl::basic_contiguous_scan_context<wchar_t> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >&)
Line
Count
Source
8377
22.0M
{
8378
22.0M
#define SCN_VISIT(Type)                                         \
8379
22.0M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
22.0M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
22.0M
    }                                                           \
8382
22.0M
    else {                                                      \
8383
22.0M
        return vis(monostate_val);                              \
8384
22.0M
    }
8385
8386
22.0M
    monostate monostate_val{};
8387
8388
22.0M
    switch (arg.m_type) {
8389
11.8k
        case detail::arg_type::schar_type:
8390
11.8k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
12.5k
        case detail::arg_type::int_type:
8394
12.5k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
11.8k
        case detail::arg_type::llong_type:
8398
11.8k
            SCN_VISIT(long long);
8399
11.7k
        case detail::arg_type::uchar_type:
8400
11.7k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
12.5k
        case detail::arg_type::uint_type:
8404
12.5k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
11.8k
        case detail::arg_type::ullong_type:
8408
11.8k
            SCN_VISIT(unsigned long long);
8409
704
        case detail::arg_type::pointer_type:
8410
704
            SCN_VISIT(void*);
8411
704
        case detail::arg_type::bool_type:
8412
704
            SCN_VISIT(bool);
8413
0
        case detail::arg_type::narrow_character_type:
8414
0
            SCN_VISIT(char);
8415
704
        case detail::arg_type::wide_character_type:
8416
704
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
18.5k
        case detail::arg_type::float_type:
8420
18.5k
            SCN_VISIT(float);
8421
19.2k
        case detail::arg_type::double_type:
8422
19.2k
            SCN_VISIT(double);
8423
18.5k
        case detail::arg_type::ldouble_type:
8424
18.5k
            SCN_VISIT(long double);
8425
0
        case detail::arg_type::narrow_string_view_type:
8426
0
            SCN_VISIT(std::string_view);
8427
704
        case detail::arg_type::narrow_string_type:
8428
704
            SCN_VISIT(std::string);
8429
10.9M
        case detail::arg_type::wide_string_view_type:
8430
10.9M
            SCN_VISIT(std::wstring_view);
8431
10.9M
        case detail::arg_type::wide_string_type:
8432
10.9M
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
22.0M
            SCN_CLANG_POP
8456
22.0M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
Unexecuted instantiation: decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::custom_reader<scn::v3::basic_scan_context<wchar_t> >, scn::v3::basic_scan_context<wchar_t> >(scn::v3::impl::custom_reader<scn::v3::basic_scan_context<wchar_t> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >&)
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::arg_reader<scn::v3::impl::basic_contiguous_scan_context<wchar_t> >, scn::v3::basic_scan_context<wchar_t> >(scn::v3::impl::arg_reader<scn::v3::impl::basic_contiguous_scan_context<wchar_t> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >&)
Line
Count
Source
8377
15.1M
{
8378
15.1M
#define SCN_VISIT(Type)                                         \
8379
15.1M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
15.1M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
15.1M
    }                                                           \
8382
15.1M
    else {                                                      \
8383
15.1M
        return vis(monostate_val);                              \
8384
15.1M
    }
8385
8386
15.1M
    monostate monostate_val{};
8387
8388
15.1M
    switch (arg.m_type) {
8389
47.1k
        case detail::arg_type::schar_type:
8390
47.1k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
47.5k
        case detail::arg_type::int_type:
8394
47.5k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
47.3k
        case detail::arg_type::llong_type:
8398
47.3k
            SCN_VISIT(long long);
8399
47.0k
        case detail::arg_type::uchar_type:
8400
47.0k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
47.4k
        case detail::arg_type::uint_type:
8404
47.4k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
47.2k
        case detail::arg_type::ullong_type:
8408
47.2k
            SCN_VISIT(unsigned long long);
8409
264
        case detail::arg_type::pointer_type:
8410
264
            SCN_VISIT(void*);
8411
274
        case detail::arg_type::bool_type:
8412
274
            SCN_VISIT(bool);
8413
0
        case detail::arg_type::narrow_character_type:
8414
0
            SCN_VISIT(char);
8415
264
        case detail::arg_type::wide_character_type:
8416
264
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
60.4k
        case detail::arg_type::float_type:
8420
60.4k
            SCN_VISIT(float);
8421
60.7k
        case detail::arg_type::double_type:
8422
60.7k
            SCN_VISIT(double);
8423
60.5k
        case detail::arg_type::ldouble_type:
8424
60.5k
            SCN_VISIT(long double);
8425
0
        case detail::arg_type::narrow_string_view_type:
8426
0
            SCN_VISIT(std::string_view);
8427
264
        case detail::arg_type::narrow_string_type:
8428
264
            SCN_VISIT(std::string);
8429
7.32M
        case detail::arg_type::wide_string_view_type:
8430
7.32M
            SCN_VISIT(std::wstring_view);
8431
7.32M
        case detail::arg_type::wide_string_type:
8432
7.32M
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
15.1M
            SCN_CLANG_POP
8456
15.1M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::default_arg_reader<scn::v3::basic_scan_context<wchar_t> >, scn::v3::basic_scan_context<wchar_t> >(scn::v3::impl::default_arg_reader<scn::v3::basic_scan_context<wchar_t> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >&)
Line
Count
Source
8377
11.1M
{
8378
11.1M
#define SCN_VISIT(Type)                                         \
8379
11.1M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
11.1M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
11.1M
    }                                                           \
8382
11.1M
    else {                                                      \
8383
11.1M
        return vis(monostate_val);                              \
8384
11.1M
    }
8385
8386
11.1M
    monostate monostate_val{};
8387
8388
11.1M
    switch (arg.m_type) {
8389
11.8k
        case detail::arg_type::schar_type:
8390
11.8k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
11.8k
        case detail::arg_type::int_type:
8394
11.8k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
11.8k
        case detail::arg_type::llong_type:
8398
11.8k
            SCN_VISIT(long long);
8399
11.7k
        case detail::arg_type::uchar_type:
8400
11.7k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
11.8k
        case detail::arg_type::uint_type:
8404
11.8k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
11.8k
        case detail::arg_type::ullong_type:
8408
11.8k
            SCN_VISIT(unsigned long long);
8409
0
        case detail::arg_type::pointer_type:
8410
0
            SCN_VISIT(void*);
8411
0
        case detail::arg_type::bool_type:
8412
0
            SCN_VISIT(bool);
8413
0
        case detail::arg_type::narrow_character_type:
8414
0
            SCN_VISIT(char);
8415
0
        case detail::arg_type::wide_character_type:
8416
0
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
18.5k
        case detail::arg_type::float_type:
8420
18.5k
            SCN_VISIT(float);
8421
18.5k
        case detail::arg_type::double_type:
8422
18.5k
            SCN_VISIT(double);
8423
18.5k
        case detail::arg_type::ldouble_type:
8424
18.5k
            SCN_VISIT(long double);
8425
0
        case detail::arg_type::narrow_string_view_type:
8426
0
            SCN_VISIT(std::string_view);
8427
0
        case detail::arg_type::narrow_string_type:
8428
0
            SCN_VISIT(std::string);
8429
0
        case detail::arg_type::wide_string_view_type:
8430
0
            SCN_VISIT(std::wstring_view);
8431
10.9M
        case detail::arg_type::wide_string_type:
8432
10.9M
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
11.1M
            SCN_CLANG_POP
8456
11.1M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
decltype(auto) scn::v3::visit_scan_arg<scn::v3::impl::arg_reader<scn::v3::basic_scan_context<wchar_t> >, scn::v3::basic_scan_context<wchar_t> >(scn::v3::impl::arg_reader<scn::v3::basic_scan_context<wchar_t> >&&, scn::v3::basic_scan_arg<scn::v3::basic_scan_context<wchar_t> >&)
Line
Count
Source
8377
7.79M
{
8378
7.79M
#define SCN_VISIT(Type)                                         \
8379
7.79M
    if constexpr (!detail::is_type_disabled<Type>) {            \
8380
7.79M
        return vis(*static_cast<Type*>(arg.m_value.ref_value)); \
8381
7.79M
    }                                                           \
8382
7.79M
    else {                                                      \
8383
7.79M
        return vis(monostate_val);                              \
8384
7.79M
    }
8385
8386
7.79M
    monostate monostate_val{};
8387
8388
7.79M
    switch (arg.m_type) {
8389
47.1k
        case detail::arg_type::schar_type:
8390
47.1k
            SCN_VISIT(signed char);
8391
0
        case detail::arg_type::short_type:
8392
0
            SCN_VISIT(short);
8393
47.2k
        case detail::arg_type::int_type:
8394
47.2k
            SCN_VISIT(int);
8395
0
        case detail::arg_type::long_type:
8396
0
            SCN_VISIT(long);
8397
47.3k
        case detail::arg_type::llong_type:
8398
47.3k
            SCN_VISIT(long long);
8399
47.0k
        case detail::arg_type::uchar_type:
8400
47.0k
            SCN_VISIT(unsigned char);
8401
0
        case detail::arg_type::ushort_type:
8402
0
            SCN_VISIT(unsigned short);
8403
47.1k
        case detail::arg_type::uint_type:
8404
47.1k
            SCN_VISIT(unsigned);
8405
0
        case detail::arg_type::ulong_type:
8406
0
            SCN_VISIT(unsigned long);
8407
47.2k
        case detail::arg_type::ullong_type:
8408
47.2k
            SCN_VISIT(unsigned long long);
8409
0
        case detail::arg_type::pointer_type:
8410
0
            SCN_VISIT(void*);
8411
0
        case detail::arg_type::bool_type:
8412
0
            SCN_VISIT(bool);
8413
0
        case detail::arg_type::narrow_character_type:
8414
0
            SCN_VISIT(char);
8415
0
        case detail::arg_type::wide_character_type:
8416
0
            SCN_VISIT(wchar_t);
8417
0
        case detail::arg_type::code_point_type:
8418
0
            SCN_VISIT(char32_t);
8419
60.3k
        case detail::arg_type::float_type:
8420
60.3k
            SCN_VISIT(float);
8421
60.4k
        case detail::arg_type::double_type:
8422
60.4k
            SCN_VISIT(double);
8423
60.5k
        case detail::arg_type::ldouble_type:
8424
60.5k
            SCN_VISIT(long double);
8425
0
        case detail::arg_type::narrow_string_view_type:
8426
0
            SCN_VISIT(std::string_view);
8427
0
        case detail::arg_type::narrow_string_type:
8428
0
            SCN_VISIT(std::string);
8429
0
        case detail::arg_type::wide_string_view_type:
8430
0
            SCN_VISIT(std::wstring_view);
8431
7.32M
        case detail::arg_type::wide_string_type:
8432
7.32M
            SCN_VISIT(std::wstring);
8433
0
        case detail::arg_type::narrow_regex_matches_type:
8434
0
            SCN_VISIT(regex_matches);
8435
0
        case detail::arg_type::wide_regex_matches_type:
8436
0
            SCN_VISIT(wregex_matches);
8437
8438
0
        case detail::arg_type::custom_type:
8439
0
#if !SCN_DISABLE_TYPE_CUSTOM
8440
0
            return vis(
8441
0
                typename Ctx::arg_type::handle(arg.m_value.custom_value));
8442
#else
8443
            return vis(monostate_val);
8444
#endif
8445
8446
0
            SCN_CLANG_PUSH
8447
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8448
8449
0
            SCN_UNLIKELY_ATTR
8450
0
        case detail::arg_type::none_type:
8451
0
        default: {
8452
0
            return vis(monostate_val);
8453
0
        }
8454
8455
7.79M
            SCN_CLANG_POP
8456
7.79M
    }
8457
8458
0
#undef SCN_VISIT
8459
8460
0
    SCN_ENSURE(false);
8461
0
    SCN_UNREACHABLE;
8462
0
}
8463
8464
/////////////////////////////////////////////////////////////////
8465
// vscan
8466
/////////////////////////////////////////////////////////////////
8467
8468
/**
8469
 * \defgroup vscan Type-erased scanning API
8470
 *
8471
 * \brief Lower-level scanning API with type-erased arguments
8472
 */
8473
8474
namespace detail {
8475
template <typename Source>
8476
using scan_result_value_type =
8477
    std::conditional_t<std::is_same_v<remove_cvref_t<Source>, std::FILE*>,
8478
                       std::FILE*,
8479
                       borrowed_tail_subrange_t<Source>>;
8480
}
8481
8482
/**
8483
 * Result type returned by `vscan`.
8484
 *
8485
 * The value type of the `scan_expected` is `FILE*` if `Source` is `FILE*`,
8486
 * `detail::borrowed_tail_subrange_t<Source>` otherwise.
8487
 *
8488
 * \ingroup vscan
8489
 */
8490
template <typename Source>
8491
using vscan_result = scan_expected<detail::scan_result_value_type<Source>>;
8492
8493
namespace detail {
8494
scan_expected<std::ptrdiff_t> vscan_impl(std::string_view source,
8495
                                         std::string_view format,
8496
                                         scan_args args);
8497
scan_expected<std::ptrdiff_t> vscan_impl(scan_buffer& source,
8498
                                         std::string_view format,
8499
                                         scan_args args);
8500
8501
scan_expected<std::ptrdiff_t> vscan_impl(std::wstring_view source,
8502
                                         std::wstring_view format,
8503
                                         wscan_args args);
8504
scan_expected<std::ptrdiff_t> vscan_impl(wscan_buffer& source,
8505
                                         std::wstring_view format,
8506
                                         wscan_args args);
8507
8508
#if !SCN_DISABLE_LOCALE
8509
template <typename Locale>
8510
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
8511
                                                   std::string_view source,
8512
                                                   std::string_view format,
8513
                                                   scan_args args);
8514
template <typename Locale>
8515
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
8516
                                                   scan_buffer& source,
8517
                                                   std::string_view format,
8518
                                                   scan_args args);
8519
8520
template <typename Locale>
8521
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
8522
                                                   std::wstring_view source,
8523
                                                   std::wstring_view format,
8524
                                                   wscan_args args);
8525
template <typename Locale>
8526
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
8527
                                                   wscan_buffer& source,
8528
                                                   std::wstring_view format,
8529
                                                   wscan_args args);
8530
#endif
8531
8532
scan_expected<std::ptrdiff_t> vscan_value_impl(
8533
    std::string_view source,
8534
    basic_scan_arg<scan_context> arg);
8535
scan_expected<std::ptrdiff_t> vscan_value_impl(
8536
    scan_buffer& source,
8537
    basic_scan_arg<scan_context> arg);
8538
8539
scan_expected<std::ptrdiff_t> vscan_value_impl(
8540
    std::wstring_view source,
8541
    basic_scan_arg<wscan_context> arg);
8542
scan_expected<std::ptrdiff_t> vscan_value_impl(
8543
    wscan_buffer& source,
8544
    basic_scan_arg<wscan_context> arg);
8545
8546
template <typename Range, typename CharT>
8547
auto vscan_generic(Range&& range,
8548
                   std::basic_string_view<CharT> format,
8549
                   basic_scan_args<basic_scan_context<CharT>> args)
8550
    -> vscan_result<Range>
8551
27.1M
{
8552
27.1M
    auto buffer = make_scan_buffer(range);
8553
8554
27.1M
    auto result = vscan_impl(buffer, format, args);
8555
27.1M
    if (SCN_UNLIKELY(!result)) {
8556
1.22M
        return unexpected(result.error());
8557
1.22M
    }
8558
25.8M
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
27.1M
}
_ZN3scn2v36detail13vscan_genericIRNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESF_NS1_22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEEEOSB_NS4_IT0_NS5_ISN_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISN_EEEE
Line
Count
Source
8551
66.1k
{
8552
66.1k
    auto buffer = make_scan_buffer(range);
8553
8554
66.1k
    auto result = vscan_impl(buffer, format, args);
8555
66.1k
    if (SCN_UNLIKELY(!result)) {
8556
64.3k
        return unexpected(result.error());
8557
64.3k
    }
8558
1.74k
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
66.1k
}
_ZN3scn2v36detail13vscan_genericIRNSt3__117basic_string_viewIwNS3_11char_traitsIwEEEEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESF_NS1_22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEEEOSB_NS4_IT0_NS5_ISN_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISN_EEEE
Line
Count
Source
8551
132k
{
8552
132k
    auto buffer = make_scan_buffer(range);
8553
8554
132k
    auto result = vscan_impl(buffer, format, args);
8555
132k
    if (SCN_UNLIKELY(!result)) {
8556
132k
        return unexpected(result.error());
8557
132k
    }
8558
39
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
132k
}
_ZN3scn2v36detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEcEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NSB_17basic_string_viewIT0_NSB_11char_traitsISQ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISQ_EEEE
Line
Count
Source
8551
2.15M
{
8552
2.15M
    auto buffer = make_scan_buffer(range);
8553
8554
2.15M
    auto result = vscan_impl(buffer, format, args);
8555
2.15M
    if (SCN_UNLIKELY(!result)) {
8556
174k
        return unexpected(result.error());
8557
174k
    }
8558
1.98M
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
2.15M
}
_ZN3scn2v36detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEcEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS7_17basic_string_viewIT0_NS7_11char_traitsISV_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISV_EEEE
Line
Count
Source
8551
2.09M
{
8552
2.09M
    auto buffer = make_scan_buffer(range);
8553
8554
2.09M
    auto result = vscan_impl(buffer, format, args);
8555
2.09M
    if (SCN_UNLIKELY(!result)) {
8556
169k
        return unexpected(result.error());
8557
169k
    }
8558
1.92M
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
2.09M
}
_ZN3scn2v36detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEwEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NSB_17basic_string_viewIT0_NSB_11char_traitsISQ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISQ_EEEE
Line
Count
Source
8551
14.9M
{
8552
14.9M
    auto buffer = make_scan_buffer(range);
8553
8554
14.9M
    auto result = vscan_impl(buffer, format, args);
8555
14.9M
    if (SCN_UNLIKELY(!result)) {
8556
348k
        return unexpected(result.error());
8557
348k
    }
8558
14.6M
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
14.9M
}
_ZN3scn2v36detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEwEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS7_17basic_string_viewIT0_NS7_11char_traitsISV_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISV_EEEE
Line
Count
Source
8551
7.67M
{
8552
7.67M
    auto buffer = make_scan_buffer(range);
8553
8554
7.67M
    auto result = vscan_impl(buffer, format, args);
8555
7.67M
    if (SCN_UNLIKELY(!result)) {
8556
339k
        return unexpected(result.error());
8557
339k
    }
8558
7.33M
    return make_vscan_result_range(SCN_FWD(range), *result);
8559
7.67M
}
8560
8561
template <typename Locale, typename Range, typename CharT>
8562
auto vscan_localized_generic(const Locale& loc,
8563
                             Range&& range,
8564
                             std::basic_string_view<CharT> format,
8565
                             basic_scan_args<basic_scan_context<CharT>> args)
8566
    -> vscan_result<Range>
8567
27.1M
{
8568
27.1M
#if !SCN_DISABLE_LOCALE
8569
27.1M
    auto buffer = detail::make_scan_buffer(range);
8570
8571
27.1M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
27.1M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
27.1M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
27.1M
    if (SCN_UNLIKELY(!result)) {
8576
1.22M
        return unexpected(result.error());
8577
1.22M
    }
8578
25.8M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
27.1M
}
_ZN3scn2v36detail23vscan_localized_genericINSt3__16localeERNS3_17basic_string_viewIcNS3_11char_traitsIcEEEEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESG_NS1_22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEERKT_OSC_NS5_IT1_NS6_ISR_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISR_EEEE
Line
Count
Source
8567
66.1k
{
8568
66.1k
#if !SCN_DISABLE_LOCALE
8569
66.1k
    auto buffer = detail::make_scan_buffer(range);
8570
8571
66.1k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
66.1k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
66.1k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
66.1k
    if (SCN_UNLIKELY(!result)) {
8576
64.3k
        return unexpected(result.error());
8577
64.3k
    }
8578
1.74k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
66.1k
}
_ZN3scn2v36detail23vscan_localized_genericINSt3__16localeERNS3_17basic_string_viewIwNS3_11char_traitsIwEEEEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESG_NS1_22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEERKT_OSC_NS5_IT1_NS6_ISR_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISR_EEEE
Line
Count
Source
8567
132k
{
8568
132k
#if !SCN_DISABLE_LOCALE
8569
132k
    auto buffer = detail::make_scan_buffer(range);
8570
8571
132k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
132k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
132k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
132k
    if (SCN_UNLIKELY(!result)) {
8576
132k
        return unexpected(result.error());
8577
132k
    }
8578
39
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
132k
}
_ZN3scn2v36detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcSA_EEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESI_NS1_22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEEERKT_OSE_NS3_17basic_string_viewIT1_NS3_11char_traitsISU_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISU_EEEE
Line
Count
Source
8567
2.15M
{
8568
2.15M
#if !SCN_DISABLE_LOCALE
8569
2.15M
    auto buffer = detail::make_scan_buffer(range);
8570
8571
2.15M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
2.15M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
2.15M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
2.15M
    if (SCN_UNLIKELY(!result)) {
8576
174k
        return unexpected(result.error());
8577
174k
    }
8578
1.98M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
2.15M
}
_ZN3scn2v36detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS3_16__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS1_22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEEERKT_OSJ_NS3_17basic_string_viewIT1_NS3_11char_traitsISZ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISZ_EEEE
Line
Count
Source
8567
2.09M
{
8568
2.09M
#if !SCN_DISABLE_LOCALE
8569
2.09M
    auto buffer = detail::make_scan_buffer(range);
8570
8571
2.09M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
2.09M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
2.09M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
2.09M
    if (SCN_UNLIKELY(!result)) {
8576
169k
        return unexpected(result.error());
8577
169k
    }
8578
1.92M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
2.09M
}
_ZN3scn2v36detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKwSA_EEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESI_NS1_22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEEERKT_OSE_NS3_17basic_string_viewIT1_NS3_11char_traitsISU_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISU_EEEE
Line
Count
Source
8567
14.9M
{
8568
14.9M
#if !SCN_DISABLE_LOCALE
8569
14.9M
    auto buffer = detail::make_scan_buffer(range);
8570
8571
14.9M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
14.9M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
14.9M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
14.9M
    if (SCN_UNLIKELY(!result)) {
8576
348k
        return unexpected(result.error());
8577
348k
    }
8578
14.6M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
14.9M
}
_ZN3scn2v36detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS3_16__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS1_22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEEERKT_OSJ_NS3_17basic_string_viewIT1_NS3_11char_traitsISZ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextISZ_EEEE
Line
Count
Source
8567
7.67M
{
8568
7.67M
#if !SCN_DISABLE_LOCALE
8569
7.67M
    auto buffer = detail::make_scan_buffer(range);
8570
8571
7.67M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
8572
7.67M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
8573
7.67M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
8574
8575
7.67M
    if (SCN_UNLIKELY(!result)) {
8576
339k
        return unexpected(result.error());
8577
339k
    }
8578
7.33M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8579
#else
8580
    static_assert(dependent_false<Locale>::value,
8581
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
8582
8583
    return {};
8584
#endif
8585
7.67M
}
8586
8587
template <typename Range, typename CharT>
8588
auto vscan_value_generic(Range&& range,
8589
                         basic_scan_arg<basic_scan_context<CharT>> arg)
8590
    -> vscan_result<Range>
8591
11.9M
{
8592
11.9M
    auto buffer = detail::make_scan_buffer(range);
8593
8594
11.9M
    auto result = detail::vscan_value_impl(buffer, arg);
8595
11.9M
    if (SCN_UNLIKELY(!result)) {
8596
125k
        return unexpected(result.error());
8597
125k
    }
8598
11.7M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8599
11.9M
}
_ZN3scn2v36detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEcEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NS0_14basic_scan_argINS0_18basic_scan_contextIT0_EEEE
Line
Count
Source
8591
444k
{
8592
444k
    auto buffer = detail::make_scan_buffer(range);
8593
8594
444k
    auto result = detail::vscan_value_impl(buffer, arg);
8595
444k
    if (SCN_UNLIKELY(!result)) {
8596
21.2k
        return unexpected(result.error());
8597
21.2k
    }
8598
422k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8599
444k
}
_ZN3scn2v36detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEcEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS0_14basic_scan_argINS0_18basic_scan_contextIT0_EEEE
Line
Count
Source
8591
396k
{
8592
396k
    auto buffer = detail::make_scan_buffer(range);
8593
8594
396k
    auto result = detail::vscan_value_impl(buffer, arg);
8595
396k
    if (SCN_UNLIKELY(!result)) {
8596
20.5k
        return unexpected(result.error());
8597
20.5k
    }
8598
376k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8599
396k
}
_ZN3scn2v36detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEwEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NS0_14basic_scan_argINS0_18basic_scan_contextIT0_EEEE
Line
Count
Source
8591
7.36M
{
8592
7.36M
    auto buffer = detail::make_scan_buffer(range);
8593
8594
7.36M
    auto result = detail::vscan_value_impl(buffer, arg);
8595
7.36M
    if (SCN_UNLIKELY(!result)) {
8596
42.5k
        return unexpected(result.error());
8597
42.5k
    }
8598
7.32M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8599
7.36M
}
_ZN3scn2v36detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEwEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS0_14basic_scan_argINS0_18basic_scan_contextIT0_EEEE
Line
Count
Source
8591
3.70M
{
8592
3.70M
    auto buffer = detail::make_scan_buffer(range);
8593
8594
3.70M
    auto result = detail::vscan_value_impl(buffer, arg);
8595
3.70M
    if (SCN_UNLIKELY(!result)) {
8596
41.0k
        return unexpected(result.error());
8597
41.0k
    }
8598
3.66M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
8599
3.70M
}
8600
}  // namespace detail
8601
8602
SCN_GCC_PUSH
8603
SCN_GCC_IGNORE("-Wnoexcept")
8604
8605
/**
8606
 * Perform actual scanning from `source`, according to `format`, into the
8607
 * type-erased arguments at `args`. Called by `scan`.
8608
 *
8609
 * \ingroup vscan
8610
 */
8611
template <typename Source>
8612
auto vscan(Source&& source, std::string_view format, scan_args args)
8613
    -> vscan_result<Source>
8614
4.31M
{
8615
4.31M
    return detail::vscan_generic(SCN_FWD(source), format, args);
8616
4.31M
}
_ZN3scn2v35vscanIRNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEEENS0_13scan_expectedINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESE_NS0_6detail22borrowed_tail_subrangeISA_Xsr6rangesE14borrowed_rangeISA_EEE4typeEE4typeEEEOSA_S6_NS0_15basic_scan_argsINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8614
66.1k
{
8615
66.1k
    return detail::vscan_generic(SCN_FWD(source), format, args);
8616
66.1k
}
_ZN3scn2v35vscanINS0_6ranges6detail9subrange_8subrangeIPKcS7_EEEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEEOSC_NSA_17basic_string_viewIcNSA_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8614
2.15M
{
8615
2.15M
    return detail::vscan_generic(SCN_FWD(source), format, args);
8616
2.15M
}
_ZN3scn2v35vscanINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEEENS0_13scan_expectedINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEEEOSH_NS6_17basic_string_viewIcNS6_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8614
2.09M
{
8615
2.09M
    return detail::vscan_generic(SCN_FWD(source), format, args);
8616
2.09M
}
8617
8618
/**
8619
 * Perform actual scanning from `source`, according to `format`, into the
8620
 * type-erased arguments at `args`, using `loc`, if requested. Called by
8621
 * `scan`.
8622
 *
8623
 * \ingroup locale
8624
 */
8625
template <typename Source,
8626
          typename Locale,
8627
          typename = std::void_t<decltype(Locale::classic())>>
8628
auto vscan(const Locale& loc,
8629
           Source&& source,
8630
           std::string_view format,
8631
           scan_args args) -> vscan_result<Source>
8632
4.31M
{
8633
4.31M
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
8634
4.31M
}
_ZN3scn2v35vscanIRNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEENS2_6localeEvEENS0_13scan_expectedINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEEERKT0_OSB_S6_NS0_15basic_scan_argsINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8632
66.1k
{
8633
66.1k
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
8634
66.1k
}
_ZN3scn2v35vscanINS0_6ranges6detail9subrange_8subrangeIPKcS7_EENSt3__16localeEvEENS0_13scan_expectedINS9_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEERKT0_OSD_NS9_17basic_string_viewIcNS9_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8632
2.15M
{
8633
2.15M
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
8634
2.15M
}
_ZN3scn2v35vscanINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EENS6_6localeEvEENS0_13scan_expectedINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEERKT0_OSI_NS6_17basic_string_viewIcNS6_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8632
2.09M
{
8633
2.09M
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
8634
2.09M
}
8635
8636
/**
8637
 * Perform actual scanning from `source` into the type-erased argument at
8638
 * `arg`. Called by `scan_value`.
8639
 *
8640
 * \ingroup vscan
8641
 */
8642
template <typename Source>
8643
auto vscan_value(Source&& source, basic_scan_arg<scan_context> arg)
8644
    -> vscan_result<Source>
8645
840k
{
8646
840k
    return detail::vscan_value_generic(SCN_FWD(source), arg);
8647
840k
}
_ZN3scn2v311vscan_valueINS0_6ranges6detail9subrange_8subrangeIPKcS7_EEEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEEOSC_NS0_14basic_scan_argINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8645
444k
{
8646
444k
    return detail::vscan_value_generic(SCN_FWD(source), arg);
8647
444k
}
_ZN3scn2v311vscan_valueINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEEENS0_13scan_expectedINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEEEOSH_NS0_14basic_scan_argINS0_18basic_scan_contextIcEEEE
Line
Count
Source
8645
396k
{
8646
396k
    return detail::vscan_value_generic(SCN_FWD(source), arg);
8647
396k
}
8648
8649
/**
8650
 * Perform actual scanning from `stdin`, according to `format`, into the
8651
 * type-erased arguments at `args`. Called by `input`.
8652
 *
8653
 * \ingroup vscan
8654
 */
8655
scan_error vinput(std::string_view format, scan_args args);
8656
8657
namespace detail {
8658
template <typename T>
8659
auto scan_int_impl(std::string_view source, T& value, int base)
8660
    -> scan_expected<std::string_view::iterator>;
8661
8662
template <typename T>
8663
auto scan_int_exhaustive_valid_impl(std::string_view source) -> T;
8664
8665
#if !SCN_DISABLE_TYPE_SCHAR
8666
extern template auto scan_int_impl(std::string_view source,
8667
                                   signed char& value,
8668
                                   int base)
8669
    -> scan_expected<std::string_view::iterator>;
8670
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8671
    -> signed char;
8672
#endif
8673
#if !SCN_DISABLE_TYPE_SHORT
8674
extern template auto scan_int_impl(std::string_view source,
8675
                                   short& value,
8676
                                   int base)
8677
    -> scan_expected<std::string_view::iterator>;
8678
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> short;
8679
#endif
8680
#if !SCN_DISABLE_TYPE_INT
8681
extern template auto scan_int_impl(std::string_view source,
8682
                                   int& value,
8683
                                   int base)
8684
    -> scan_expected<std::string_view::iterator>;
8685
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> int;
8686
#endif
8687
#if !SCN_DISABLE_TYPE_LONG
8688
extern template auto scan_int_impl(std::string_view source,
8689
                                   long& value,
8690
                                   int base)
8691
    -> scan_expected<std::string_view::iterator>;
8692
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> long;
8693
#endif
8694
#if !SCN_DISABLE_TYPE_LONG_LONG
8695
extern template auto scan_int_impl(std::string_view source,
8696
                                   long long& value,
8697
                                   int base)
8698
    -> scan_expected<std::string_view::iterator>;
8699
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8700
    -> long long;
8701
#endif
8702
#if !SCN_DISABLE_TYPE_UCHAR
8703
extern template auto scan_int_impl(std::string_view source,
8704
                                   unsigned char& value,
8705
                                   int base)
8706
    -> scan_expected<std::string_view::iterator>;
8707
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8708
    -> unsigned char;
8709
#endif
8710
#if !SCN_DISABLE_TYPE_USHORT
8711
extern template auto scan_int_impl(std::string_view source,
8712
                                   unsigned short& value,
8713
                                   int base)
8714
    -> scan_expected<std::string_view::iterator>;
8715
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8716
    -> unsigned short;
8717
#endif
8718
#if !SCN_DISABLE_TYPE_UINT
8719
extern template auto scan_int_impl(std::string_view source,
8720
                                   unsigned int& value,
8721
                                   int base)
8722
    -> scan_expected<std::string_view::iterator>;
8723
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8724
    -> unsigned int;
8725
#endif
8726
#if !SCN_DISABLE_TYPE_ULONG
8727
extern template auto scan_int_impl(std::string_view source,
8728
                                   unsigned long& value,
8729
                                   int base)
8730
    -> scan_expected<std::string_view::iterator>;
8731
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8732
    -> unsigned long;
8733
#endif
8734
#if !SCN_DISABLE_TYPE_ULONG_LONG
8735
extern template auto scan_int_impl(std::string_view source,
8736
                                   unsigned long long& value,
8737
                                   int base)
8738
    -> scan_expected<std::string_view::iterator>;
8739
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
8740
    -> unsigned long long;
8741
#endif
8742
8743
}  // namespace detail
8744
8745
SCN_GCC_POP  // -Wnoexcept
8746
8747
    // dummy namespace to reset formatting
8748
    namespace detail
8749
{
8750
}
8751
8752
/////////////////////////////////////////////////////////////////
8753
// scan
8754
/////////////////////////////////////////////////////////////////
8755
8756
/**
8757
 * Convenience function to construct the value to return from `scan`,
8758
 * based on the return value of `vscan`, and the argument store.
8759
 *
8760
 * Takes its arguments by rvalue reference to disallow extraneous copying.
8761
 *
8762
 * Note: Because `vscan` places the values it scanned into the argument
8763
 * store passed to it, the call to `make_scan_result` needs to happen
8764
 * strictly after calling `vscan`. This means, that this is UB:
8765
 * `return scn::make_scan_result(scn::vscan(...), std::move(args.args()));`
8766
 *
8767
 * Example:
8768
 * \code{.cpp}
8769
 * auto args = scn::make_scan_args<scan_context, Args...>();
8770
 * auto result = scn::vscan(std::forward<Source>(source), format, args);
8771
 * return scn::make_scan_result(std::move(result), std::move(args.args()));
8772
 * \endcode
8773
 *
8774
 * \ingroup result
8775
 */
8776
template <typename Result, typename... Args>
8777
auto make_scan_result(scan_expected<Result>&& result,
8778
                      std::tuple<Args...>&& args)
8779
    -> scan_expected<scan_result<Result, Args...>>
8780
54.2M
{
8781
54.2M
    if (SCN_UNLIKELY(!result)) {
8782
2.45M
        return unexpected(result.error());
8783
2.45M
    }
8784
51.7M
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
54.2M
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<char>&&)
Line
Count
Source
8780
14.6k
{
8781
14.6k
    if (SCN_UNLIKELY(!result)) {
8782
14.4k
        return unexpected(result.error());
8783
14.4k
    }
8784
204
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
14.6k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<int>&&)
Line
Count
Source
8780
407k
{
8781
407k
    if (SCN_UNLIKELY(!result)) {
8782
53.6k
        return unexpected(result.error());
8783
53.6k
    }
8784
354k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
407k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<unsigned int>&&)
Line
Count
Source
8780
354k
{
8781
354k
    if (SCN_UNLIKELY(!result)) {
8782
53.6k
        return unexpected(result.error());
8783
53.6k
    }
8784
300k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
354k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<double>&&)
Line
Count
Source
8780
686k
{
8781
686k
    if (SCN_UNLIKELY(!result)) {
8782
47.2k
        return unexpected(result.error());
8783
47.2k
    }
8784
638k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
686k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, bool>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<bool>&&)
Line
Count
Source
8780
14.6k
{
8781
14.6k
    if (SCN_UNLIKELY(!result)) {
8782
14.6k
        return unexpected(result.error());
8783
14.6k
    }
8784
0
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
14.6k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, void*>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<void*>&&)
Line
Count
Source
8780
14.6k
{
8781
14.6k
    if (SCN_UNLIKELY(!result)) {
8782
14.6k
        return unexpected(result.error());
8783
14.6k
    }
8784
0
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
14.6k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
8780
142k
{
8781
142k
    if (SCN_UNLIKELY(!result)) {
8782
22.3k
        return unexpected(result.error());
8783
22.3k
    }
8784
120k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
142k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
8780
14.6k
{
8781
14.6k
    if (SCN_UNLIKELY(!result)) {
8782
13.6k
        return unexpected(result.error());
8783
13.6k
    }
8784
1.09k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
14.6k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Line
Count
Source
8780
142k
{
8781
142k
    if (SCN_UNLIKELY(!result)) {
8782
22.3k
        return unexpected(result.error());
8783
22.3k
    }
8784
120k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
142k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<wchar_t>&&)
Line
Count
Source
8780
29.3k
{
8781
29.3k
    if (SCN_UNLIKELY(!result)) {
8782
29.3k
        return unexpected(result.error());
8783
29.3k
    }
8784
12
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
29.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<int>&&)
Line
Count
Source
8780
107k
{
8781
107k
    if (SCN_UNLIKELY(!result)) {
8782
107k
        return unexpected(result.error());
8783
107k
    }
8784
656
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
107k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<unsigned int>&&)
Line
Count
Source
8780
107k
{
8781
107k
    if (SCN_UNLIKELY(!result)) {
8782
107k
        return unexpected(result.error());
8783
107k
    }
8784
522
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
107k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<double>&&)
Line
Count
Source
8780
102k
{
8781
102k
    if (SCN_UNLIKELY(!result)) {
8782
94.5k
        return unexpected(result.error());
8783
94.5k
    }
8784
7.67k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
102k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<bool>&&)
Line
Count
Source
8780
29.3k
{
8781
29.3k
    if (SCN_UNLIKELY(!result)) {
8782
29.3k
        return unexpected(result.error());
8783
29.3k
    }
8784
0
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
29.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<void*>&&)
Line
Count
Source
8780
29.3k
{
8781
29.3k
    if (SCN_UNLIKELY(!result)) {
8782
29.3k
        return unexpected(result.error());
8783
29.3k
    }
8784
0
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
29.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
8780
29.3k
{
8781
29.3k
    if (SCN_UNLIKELY(!result)) {
8782
29.3k
        return unexpected(result.error());
8783
29.3k
    }
8784
22
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
29.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
8780
14.6M
{
8781
14.6M
    if (SCN_UNLIKELY(!result)) {
8782
46.9k
        return unexpected(result.error());
8783
46.9k
    }
8784
14.6M
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
14.6M
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Line
Count
Source
8780
14.6M
{
8781
14.6M
    if (SCN_UNLIKELY(!result)) {
8782
46.9k
        return unexpected(result.error());
8783
46.9k
    }
8784
14.6M
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
14.6M
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, signed char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<signed char>&&)
Line
Count
Source
8780
311k
{
8781
311k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
272k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
311k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<unsigned char>&&)
Line
Count
Source
8780
300k
{
8781
300k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
261k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
300k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<long long>&&)
Line
Count
Source
8780
400k
{
8781
400k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
361k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
400k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
8780
343k
{
8781
343k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
304k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
343k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, signed char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<signed char>&&)
Line
Count
Source
8780
313k
{
8781
313k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
274k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
313k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<unsigned char>&&)
Line
Count
Source
8780
302k
{
8781
302k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
263k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
302k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<int>&&)
Line
Count
Source
8780
394k
{
8781
394k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
355k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
394k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<unsigned int>&&)
Line
Count
Source
8780
341k
{
8781
341k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
302k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
341k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<long long>&&)
Line
Count
Source
8780
401k
{
8781
401k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
362k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
401k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, unsigned long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
8780
345k
{
8781
345k
    if (SCN_UNLIKELY(!result)) {
8782
38.9k
        return unexpected(result.error());
8783
38.9k
    }
8784
306k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
345k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, signed char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<signed char>&&)
Line
Count
Source
8780
78.3k
{
8781
78.3k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
550
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<unsigned char>&&)
Line
Count
Source
8780
78.3k
{
8781
78.3k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
464
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<long long>&&)
Line
Count
Source
8780
78.6k
{
8781
78.6k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
794
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.6k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
8780
78.4k
{
8781
78.4k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
640
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.4k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, signed char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<signed char>&&)
Line
Count
Source
8780
78.3k
{
8781
78.3k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
550
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned char>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<unsigned char>&&)
Line
Count
Source
8780
78.3k
{
8781
78.3k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
464
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<int>&&)
Line
Count
Source
8780
78.4k
{
8781
78.4k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
656
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.4k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned int>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<unsigned int>&&)
Line
Count
Source
8780
78.3k
{
8781
78.3k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
522
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.3k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<long long>&&)
Line
Count
Source
8780
78.6k
{
8781
78.6k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
794
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.6k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, unsigned long long>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<unsigned long long>&&)
Line
Count
Source
8780
78.4k
{
8781
78.4k
    if (SCN_UNLIKELY(!result)) {
8782
77.8k
        return unexpected(result.error());
8783
77.8k
    }
8784
640
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
78.4k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
8780
129k
{
8781
129k
    if (SCN_UNLIKELY(!result)) {
8782
8.77k
        return unexpected(result.error());
8783
8.77k
    }
8784
120k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
129k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Line
Count
Source
8780
14.6M
{
8781
14.6M
    if (SCN_UNLIKELY(!result)) {
8782
17.5k
        return unexpected(result.error());
8783
17.5k
    }
8784
14.6M
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
14.6M
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, float>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<float>&&)
Line
Count
Source
8780
621k
{
8781
621k
    if (SCN_UNLIKELY(!result)) {
8782
32.5k
        return unexpected(result.error());
8783
32.5k
    }
8784
588k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
621k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*>, long double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<char const*, char const*> >&&, std::__1::tuple<long double>&&)
Line
Count
Source
8780
680k
{
8781
680k
    if (SCN_UNLIKELY(!result)) {
8782
32.5k
        return unexpected(result.error());
8783
32.5k
    }
8784
647k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
680k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, float>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<float>&&)
Line
Count
Source
8780
615k
{
8781
615k
    if (SCN_UNLIKELY(!result)) {
8782
32.5k
        return unexpected(result.error());
8783
32.5k
    }
8784
583k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
615k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<double>&&)
Line
Count
Source
8780
665k
{
8781
665k
    if (SCN_UNLIKELY(!result)) {
8782
32.5k
        return unexpected(result.error());
8783
32.5k
    }
8784
633k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
665k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, long double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >&&, std::__1::tuple<long double>&&)
Line
Count
Source
8780
674k
{
8781
674k
    if (SCN_UNLIKELY(!result)) {
8782
32.5k
        return unexpected(result.error());
8783
32.5k
    }
8784
641k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
674k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, float>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<float>&&)
Line
Count
Source
8780
72.7k
{
8781
72.7k
    if (SCN_UNLIKELY(!result)) {
8782
65.1k
        return unexpected(result.error());
8783
65.1k
    }
8784
7.61k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
72.7k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, long double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >&&, std::__1::tuple<long double>&&)
Line
Count
Source
8780
72.9k
{
8781
72.9k
    if (SCN_UNLIKELY(!result)) {
8782
65.1k
        return unexpected(result.error());
8783
65.1k
    }
8784
7.77k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
72.9k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, float>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<float>&&)
Line
Count
Source
8780
72.7k
{
8781
72.7k
    if (SCN_UNLIKELY(!result)) {
8782
65.1k
        return unexpected(result.error());
8783
65.1k
    }
8784
7.59k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
72.7k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<double>&&)
Line
Count
Source
8780
72.7k
{
8781
72.7k
    if (SCN_UNLIKELY(!result)) {
8782
65.1k
        return unexpected(result.error());
8783
65.1k
    }
8784
7.65k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
72.7k
}
scn::v3::scan_expected<scn::v3::scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double> > scn::v3::make_scan_result<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, long double>(scn::v3::scan_expected<scn::v3::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >&&, std::__1::tuple<long double>&&)
Line
Count
Source
8780
72.8k
{
8781
72.8k
    if (SCN_UNLIKELY(!result)) {
8782
65.1k
        return unexpected(result.error());
8783
65.1k
    }
8784
7.75k
    return scan_result{SCN_MOVE(*result), SCN_MOVE(args)};
8785
72.8k
}
8786
8787
/**
8788
 * The return type of `scan`, based on the type of the source, and the
8789
 * types of the scanned arguments.
8790
 */
8791
template <typename Source, typename... Args>
8792
using scan_result_type =
8793
    scan_expected<scan_result<detail::scan_result_value_type<Source>, Args...>>;
8794
8795
/**
8796
 * \defgroup scan Basic scanning API
8797
 *
8798
 * \brief The core public-facing interface of the library
8799
 *
8800
 * The following functions use a format string syntax similar to that of
8801
 * `std::format`. See more at \ref format-string.
8802
 *
8803
 * When these functions take a `source` as input, it must
8804
 * model the `scannable_source` concept. See more at \ref scannable.
8805
 */
8806
8807
/**
8808
 * Scans `Args...` from `source`, according to the
8809
 * specifications given in the format string (`format`).
8810
 * Returns the resulting values in an object of type `scan_result`,
8811
 * alongside a `subrange` pointing to the unused input.
8812
 *
8813
 * Example:
8814
 * \code{.cpp}
8815
 * if (auto result = scn::scan<int>("123", "{}"))
8816
 *     int value = result->value();
8817
 * \endcode
8818
 *
8819
 * \ingroup scan
8820
 */
8821
template <typename... Args,
8822
          typename Source,
8823
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
8824
SCN_NODISCARD auto scan(Source&& source,
8825
                        scan_format_string<Source, Args...> format)
8826
    -> scan_result_type<Source, Args...>
8827
4.31M
{
8828
4.31M
    auto args = make_scan_args<scan_context, Args...>();
8829
4.31M
    auto result = vscan(SCN_FWD(source), format, args);
8830
4.31M
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
4.31M
}
_ZN3scn2v34scanIJcERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
8827
7.34k
{
8828
7.34k
    auto args = make_scan_args<scan_context, Args...>();
8829
7.34k
    auto result = vscan(SCN_FWD(source), format, args);
8830
7.34k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
7.34k
}
_ZN3scn2v34scanIJiERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
8827
7.34k
{
8828
7.34k
    auto args = make_scan_args<scan_context, Args...>();
8829
7.34k
    auto result = vscan(SCN_FWD(source), format, args);
8830
7.34k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
7.34k
}
_ZN3scn2v34scanIJjERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
8827
7.34k
{
8828
7.34k
    auto args = make_scan_args<scan_context, Args...>();
8829
7.34k
    auto result = vscan(SCN_FWD(source), format, args);
8830
7.34k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
7.34k
}
_ZN3scn2v34scanIJdERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
8827
7.34k
{
8828
7.34k
    auto args = make_scan_args<scan_context, Args...>();
8829
7.34k
    auto result = vscan(SCN_FWD(source), format, args);
8830
7.34k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
7.34k
}
_ZN3scn2v34scanIJbERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
8827
7.34k
{
8828
7.34k
    auto args = make_scan_args<scan_context, Args...>();
8829
7.34k
    auto result = vscan(SCN_FWD(source), format, args);
8830
7.34k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
7.34k
}
_ZN3scn2v34scanIJPvERNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEEOSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNST_ISN_E4typeEEEE
Line
Count
Source
8827
7.34k
{
8828
7.34k
    auto args = make_scan_args<scan_context, Args...>();
8829
7.34k
    auto result = vscan(SCN_FWD(source), format, args);
8830
7.34k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
7.34k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEERNS2_17basic_string_viewIcS5_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESJ_NS0_6detail22borrowed_tail_subrangeISF_Xsr6rangesE14borrowed_rangeISF_EEE4typeEE4typeEJDpT_EEEEEOSF_NS0_24basic_scan_format_stringIcNSK_13type_identityISF_E4typeEJDpNSW_ISQ_E4typeEEEE
Line
Count
Source
8827
7.34k
{
8828
7.34k
    auto args = make_scan_args<scan_context, Args...>();
8829
7.34k
    auto result = vscan(SCN_FWD(source), format, args);
8830
7.34k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
7.34k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEERNS2_17basic_string_viewIcNS4_IcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESK_NS0_6detail22borrowed_tail_subrangeISG_Xsr6rangesE14borrowed_rangeISG_EEE4typeEE4typeEJDpT_EEEEEOSG_NS0_24basic_scan_format_stringIcNSL_13type_identityISG_E4typeEJDpNSX_ISR_E4typeEEEE
Line
Count
Source
8827
7.34k
{
8828
7.34k
    auto args = make_scan_args<scan_context, Args...>();
8829
7.34k
    auto result = vscan(SCN_FWD(source), format, args);
8830
7.34k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
7.34k
}
_ZN3scn2v34scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEERS6_vEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
8827
7.34k
{
8828
7.34k
    auto args = make_scan_args<scan_context, Args...>();
8829
7.34k
    auto result = vscan(SCN_FWD(source), format, args);
8830
7.34k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
7.34k
}
_ZN3scn2v34scanIJaENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
155k
{
8828
155k
    auto args = make_scan_args<scan_context, Args...>();
8829
155k
    auto result = vscan(SCN_FWD(source), format, args);
8830
155k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
155k
}
_ZN3scn2v34scanIJhENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
150k
{
8828
150k
    auto args = make_scan_args<scan_context, Args...>();
8829
150k
    auto result = vscan(SCN_FWD(source), format, args);
8830
150k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
150k
}
_ZN3scn2v34scanIJiENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
196k
{
8828
196k
    auto args = make_scan_args<scan_context, Args...>();
8829
196k
    auto result = vscan(SCN_FWD(source), format, args);
8830
196k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
196k
}
_ZN3scn2v34scanIJjENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
169k
{
8828
169k
    auto args = make_scan_args<scan_context, Args...>();
8829
169k
    auto result = vscan(SCN_FWD(source), format, args);
8830
169k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
169k
}
_ZN3scn2v34scanIJxENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
200k
{
8828
200k
    auto args = make_scan_args<scan_context, Args...>();
8829
200k
    auto result = vscan(SCN_FWD(source), format, args);
8830
200k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
200k
}
_ZN3scn2v34scanIJyENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
171k
{
8828
171k
    auto args = make_scan_args<scan_context, Args...>();
8829
171k
    auto result = vscan(SCN_FWD(source), format, args);
8830
171k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
171k
}
_ZN3scn2v34scanIJaENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
156k
{
8828
156k
    auto args = make_scan_args<scan_context, Args...>();
8829
156k
    auto result = vscan(SCN_FWD(source), format, args);
8830
156k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
156k
}
_ZN3scn2v34scanIJhENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
151k
{
8828
151k
    auto args = make_scan_args<scan_context, Args...>();
8829
151k
    auto result = vscan(SCN_FWD(source), format, args);
8830
151k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
151k
}
_ZN3scn2v34scanIJiENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
197k
{
8828
197k
    auto args = make_scan_args<scan_context, Args...>();
8829
197k
    auto result = vscan(SCN_FWD(source), format, args);
8830
197k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
197k
}
_ZN3scn2v34scanIJjENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
170k
{
8828
170k
    auto args = make_scan_args<scan_context, Args...>();
8829
170k
    auto result = vscan(SCN_FWD(source), format, args);
8830
170k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
170k
}
_ZN3scn2v34scanIJxENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
200k
{
8828
200k
    auto args = make_scan_args<scan_context, Args...>();
8829
200k
    auto result = vscan(SCN_FWD(source), format, args);
8830
200k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
200k
}
_ZN3scn2v34scanIJyENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
172k
{
8828
172k
    auto args = make_scan_args<scan_context, Args...>();
8829
172k
    auto result = vscan(SCN_FWD(source), format, args);
8830
172k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
172k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS0_6ranges6detail9subrange_8subrangeIPKcSE_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEEOSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS10_ISU_E4typeEEEE
Line
Count
Source
8827
63.8k
{
8828
63.8k
    auto args = make_scan_args<scan_context, Args...>();
8829
63.8k
    auto result = vscan(SCN_FWD(source), format, args);
8830
63.8k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
63.8k
}
_ZN3scn2v34scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEENS0_6ranges6detail9subrange_8subrangeIPKcSC_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEJDpT_EEEEEOSH_NS0_24basic_scan_format_stringIcNSM_13type_identityISH_E4typeEJDpNSY_ISS_E4typeEEEE
Line
Count
Source
8827
63.8k
{
8828
63.8k
    auto args = make_scan_args<scan_context, Args...>();
8829
63.8k
    auto result = vscan(SCN_FWD(source), format, args);
8830
63.8k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
63.8k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRSE_PKSF_lLl4096EEESJ_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESS_NS0_6detail22borrowed_tail_subrangeISO_Xsr6rangesE14borrowed_rangeISO_EEE4typeEE4typeEJDpT_EEEEEOSO_NS0_24basic_scan_format_stringIcNST_13type_identityISO_E4typeEJDpNS15_ISZ_E4typeEEEE
Line
Count
Source
8827
64.5k
{
8828
64.5k
    auto args = make_scan_args<scan_context, Args...>();
8829
64.5k
    auto result = vscan(SCN_FWD(source), format, args);
8830
64.5k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
64.5k
}
_ZN3scn2v34scanIJfENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
310k
{
8828
310k
    auto args = make_scan_args<scan_context, Args...>();
8829
310k
    auto result = vscan(SCN_FWD(source), format, args);
8830
310k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
310k
}
_ZN3scn2v34scanIJdENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
335k
{
8828
335k
    auto args = make_scan_args<scan_context, Args...>();
8829
335k
    auto result = vscan(SCN_FWD(source), format, args);
8830
335k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
335k
}
_ZN3scn2v34scanIJeENS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Line
Count
Source
8827
340k
{
8828
340k
    auto args = make_scan_args<scan_context, Args...>();
8829
340k
    auto result = vscan(SCN_FWD(source), format, args);
8830
340k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
340k
}
_ZN3scn2v34scanIJfENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
307k
{
8828
307k
    auto args = make_scan_args<scan_context, Args...>();
8829
307k
    auto result = vscan(SCN_FWD(source), format, args);
8830
307k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
307k
}
_ZN3scn2v34scanIJdENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
332k
{
8828
332k
    auto args = make_scan_args<scan_context, Args...>();
8829
332k
    auto result = vscan(SCN_FWD(source), format, args);
8830
332k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
332k
}
_ZN3scn2v34scanIJeENS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEEOSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNSZ_IST_E4typeEEEE
Line
Count
Source
8827
337k
{
8828
337k
    auto args = make_scan_args<scan_context, Args...>();
8829
337k
    auto result = vscan(SCN_FWD(source), format, args);
8830
337k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8831
337k
}
8832
8833
/**
8834
 * `scan` with explicitly supplied default values
8835
 *
8836
 * Can be used, for example, for pre-allocating a scanned string:
8837
 *
8838
 * \code{.cpp}
8839
 * std::string str;
8840
 * str.reserve(64);
8841
 *
8842
 * // As long as the read string fits in `str`,
8843
 * // does not allocate
8844
 * auto result = scn::scan<std::string>(source, "{}",
8845
 *                                      {std::move(str)});
8846
 * // Access the read string with result->value()
8847
 * \endcode
8848
 *
8849
 * \ingroup scan
8850
 */
8851
template <typename... Args,
8852
          typename Source,
8853
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
8854
SCN_NODISCARD auto scan(Source&& source,
8855
                        scan_format_string<Source, Args...> format,
8856
                        std::tuple<Args...>&& initial_args)
8857
    -> scan_result_type<Source, Args...>
8858
{
8859
    auto args = make_scan_args<scan_context, Args...>(SCN_FWD(initial_args));
8860
    auto result = vscan(SCN_FWD(source), format, args);
8861
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8862
}
8863
8864
/**
8865
 * \defgroup locale Localization
8866
 *
8867
 * \brief Scanning APIs that allow passing in a locale
8868
 */
8869
8870
/**
8871
 * `scan` using an explicit locale.
8872
 *
8873
 * Has no effect on its own, locale-specific scanning still needs to be
8874
 * opted-into on an argument-by-argument basis, with the `L` format string
8875
 * specifier.
8876
 *
8877
 * \code{.cpp}
8878
 * auto result = scn::scan<double>(
8879
 *     std::locale{"fi_FI.UTF-8"}, "3,14, "{:L}");
8880
 * // result->value() == 3.14
8881
 * \endcode
8882
 *
8883
 * \ingroup locale
8884
 */
8885
template <typename... Args,
8886
          typename Locale,
8887
          typename Source,
8888
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>,
8889
          typename = std::void_t<decltype(Locale::classic())>>
8890
SCN_NODISCARD auto scan(const Locale& loc,
8891
                        Source&& source,
8892
                        scan_format_string<Source, Args...> format)
8893
    -> scan_result_type<Source, Args...>
8894
4.31M
{
8895
4.31M
    auto args = make_scan_args<scan_context, Args...>();
8896
4.31M
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
4.31M
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
4.31M
}
_ZN3scn2v34scanIJcENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
8894
7.34k
{
8895
7.34k
    auto args = make_scan_args<scan_context, Args...>();
8896
7.34k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
7.34k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
7.34k
}
_ZN3scn2v34scanIJiENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
8894
7.34k
{
8895
7.34k
    auto args = make_scan_args<scan_context, Args...>();
8896
7.34k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
7.34k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
7.34k
}
_ZN3scn2v34scanIJjENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
8894
7.34k
{
8895
7.34k
    auto args = make_scan_args<scan_context, Args...>();
8896
7.34k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
7.34k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
7.34k
}
_ZN3scn2v34scanIJdENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
8894
7.34k
{
8895
7.34k
    auto args = make_scan_args<scan_context, Args...>();
8896
7.34k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
7.34k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
7.34k
}
_ZN3scn2v34scanIJbENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
8894
7.34k
{
8895
7.34k
    auto args = make_scan_args<scan_context, Args...>();
8896
7.34k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
7.34k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
7.34k
}
_ZN3scn2v34scanIJPvENSt3__16localeERNS3_17basic_string_viewIcNS3_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEERKT0_OSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSX_ISO_E4typeEEEE
Line
Count
Source
8894
7.34k
{
8895
7.34k
    auto args = make_scan_args<scan_context, Args...>();
8896
7.34k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
7.34k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
7.34k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS2_6localeERNS2_17basic_string_viewIcS5_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESK_NS0_6detail22borrowed_tail_subrangeISG_Xsr6rangesE14borrowed_rangeISG_EEE4typeEE4typeEJDpT_EEEEERKT0_OSG_NS0_24basic_scan_format_stringIcNSL_13type_identityISG_E4typeEJDpNS10_ISR_E4typeEEEE
Line
Count
Source
8894
7.34k
{
8895
7.34k
    auto args = make_scan_args<scan_context, Args...>();
8896
7.34k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
7.34k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
7.34k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEENS2_6localeERNS2_17basic_string_viewIcNS4_IcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEJDpT_EEEEERKT0_OSH_NS0_24basic_scan_format_stringIcNSM_13type_identityISH_E4typeEJDpNS11_ISS_E4typeEEEE
Line
Count
Source
8894
7.34k
{
8895
7.34k
    auto args = make_scan_args<scan_context, Args...>();
8896
7.34k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
7.34k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
7.34k
}
_ZN3scn2v34scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEENS2_6localeERS6_vvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
8894
7.34k
{
8895
7.34k
    auto args = make_scan_args<scan_context, Args...>();
8896
7.34k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
7.34k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
7.34k
}
_ZN3scn2v34scanIJaENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
155k
{
8895
155k
    auto args = make_scan_args<scan_context, Args...>();
8896
155k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
155k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
155k
}
_ZN3scn2v34scanIJhENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
150k
{
8895
150k
    auto args = make_scan_args<scan_context, Args...>();
8896
150k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
150k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
150k
}
_ZN3scn2v34scanIJiENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
196k
{
8895
196k
    auto args = make_scan_args<scan_context, Args...>();
8896
196k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
196k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
196k
}
_ZN3scn2v34scanIJjENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
169k
{
8895
169k
    auto args = make_scan_args<scan_context, Args...>();
8896
169k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
169k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
169k
}
_ZN3scn2v34scanIJxENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
200k
{
8895
200k
    auto args = make_scan_args<scan_context, Args...>();
8896
200k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
200k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
200k
}
_ZN3scn2v34scanIJyENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
171k
{
8895
171k
    auto args = make_scan_args<scan_context, Args...>();
8896
171k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
171k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
171k
}
_ZN3scn2v34scanIJaENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
156k
{
8895
156k
    auto args = make_scan_args<scan_context, Args...>();
8896
156k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
156k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
156k
}
_ZN3scn2v34scanIJhENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
151k
{
8895
151k
    auto args = make_scan_args<scan_context, Args...>();
8896
151k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
151k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
151k
}
_ZN3scn2v34scanIJiENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
197k
{
8895
197k
    auto args = make_scan_args<scan_context, Args...>();
8896
197k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
197k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
197k
}
_ZN3scn2v34scanIJjENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
170k
{
8895
170k
    auto args = make_scan_args<scan_context, Args...>();
8896
170k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
170k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
170k
}
_ZN3scn2v34scanIJxENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
200k
{
8895
200k
    auto args = make_scan_args<scan_context, Args...>();
8896
200k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
200k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
200k
}
_ZN3scn2v34scanIJyENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
172k
{
8895
172k
    auto args = make_scan_args<scan_context, Args...>();
8896
172k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
172k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
172k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS2_6localeENS0_6ranges6detail9subrange_8subrangeIPKcSF_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESO_NS0_6detail22borrowed_tail_subrangeISK_Xsr6rangesE14borrowed_rangeISK_EEE4typeEE4typeEJDpT_EEEEERKT0_OSK_NS0_24basic_scan_format_stringIcNSP_13type_identityISK_E4typeEJDpNS14_ISV_E4typeEEEE
Line
Count
Source
8894
63.8k
{
8895
63.8k
    auto args = make_scan_args<scan_context, Args...>();
8896
63.8k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
63.8k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
63.8k
}
_ZN3scn2v34scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEENS2_6localeENS0_6ranges6detail9subrange_8subrangeIPKcSD_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEERKT0_OSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNS12_IST_E4typeEEEE
Line
Count
Source
8894
63.8k
{
8895
63.8k
    auto args = make_scan_args<scan_context, Args...>();
8896
63.8k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
63.8k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
63.8k
}
_ZN3scn2v34scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS2_6localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRSF_PKSG_lLl4096EEESK_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEEST_NS0_6detail22borrowed_tail_subrangeISP_Xsr6rangesE14borrowed_rangeISP_EEE4typeEE4typeEJDpT_EEEEERKT0_OSP_NS0_24basic_scan_format_stringIcNSU_13type_identityISP_E4typeEJDpNS19_IS10_E4typeEEEE
Line
Count
Source
8894
64.5k
{
8895
64.5k
    auto args = make_scan_args<scan_context, Args...>();
8896
64.5k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
64.5k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
64.5k
}
_ZN3scn2v34scanIJfENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
310k
{
8895
310k
    auto args = make_scan_args<scan_context, Args...>();
8896
310k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
310k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
310k
}
_ZN3scn2v34scanIJdENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
335k
{
8895
335k
    auto args = make_scan_args<scan_context, Args...>();
8896
335k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
335k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
335k
}
_ZN3scn2v34scanIJeENSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcS9_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESI_NS0_6detail22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEJDpT_EEEEERKT0_OSE_NS0_24basic_scan_format_stringIcNSJ_13type_identityISE_E4typeEJDpNSY_ISP_E4typeEEEE
Line
Count
Source
8894
340k
{
8895
340k
    auto args = make_scan_args<scan_context, Args...>();
8896
340k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
340k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
340k
}
_ZN3scn2v34scanIJfENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
307k
{
8895
307k
    auto args = make_scan_args<scan_context, Args...>();
8896
307k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
307k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
307k
}
_ZN3scn2v34scanIJdENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
332k
{
8895
332k
    auto args = make_scan_args<scan_context, Args...>();
8896
332k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
332k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
332k
}
_ZN3scn2v34scanIJeENSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEERKT0_OSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS13_ISU_E4typeEEEE
Line
Count
Source
8894
337k
{
8895
337k
    auto args = make_scan_args<scan_context, Args...>();
8896
337k
    auto result = vscan(loc, SCN_FWD(source), format, args);
8897
337k
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8898
337k
}
8899
8900
/**
8901
 * `scan` with a locale and default values
8902
 *
8903
 * \ingroup locale
8904
 */
8905
template <typename... Args,
8906
          typename Locale,
8907
          typename Source,
8908
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>,
8909
          typename = std::void_t<decltype(Locale::classic())>>
8910
SCN_NODISCARD auto scan(const Locale& loc,
8911
                        Source&& source,
8912
                        scan_format_string<Source, Args...> format,
8913
                        std::tuple<Args...>&& initial_args)
8914
    -> scan_result_type<Source, Args...>
8915
{
8916
    auto args = make_scan_args<scan_context, Args...>(SCN_FWD(initial_args));
8917
    auto result = vscan(loc, SCN_FWD(source), format, args);
8918
    return make_scan_result(SCN_MOVE(result), SCN_MOVE(args.args()));
8919
}
8920
8921
/**
8922
 * `scan` a single value, with default options.
8923
 *
8924
 * Essentially equivalent to: `scn::scan<T>(source, "{}")`,
8925
 * except it can skip parsing the format string, gaining performance.
8926
 *
8927
 * \ingroup scan
8928
 */
8929
template <typename T,
8930
          typename Source,
8931
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
8932
SCN_NODISCARD auto scan_value(Source&& source) -> scan_result_type<Source, T>
8933
840k
{
8934
840k
    T value;
8935
840k
    auto arg = detail::make_arg<scan_context>(value);
8936
840k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
798k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
840k
}
_ZN3scn2v310scan_valueIaNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
26.2k
{
8934
26.2k
    T value;
8935
26.2k
    auto arg = detail::make_arg<scan_context>(value);
8936
26.2k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
24.3k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
26.2k
}
_ZN3scn2v310scan_valueIhNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
23.3k
{
8934
23.3k
    T value;
8935
23.3k
    auto arg = detail::make_arg<scan_context>(value);
8936
23.3k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
21.3k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
23.3k
}
_ZN3scn2v310scan_valueIiNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
30.3k
{
8934
30.3k
    T value;
8935
30.3k
    auto arg = detail::make_arg<scan_context>(value);
8936
30.3k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
28.4k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
30.3k
}
_ZN3scn2v310scan_valueIjNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
26.0k
{
8934
26.0k
    T value;
8935
26.0k
    auto arg = detail::make_arg<scan_context>(value);
8936
26.0k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
24.0k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
26.0k
}
_ZN3scn2v310scan_valueIxNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
30.9k
{
8934
30.9k
    T value;
8935
30.9k
    auto arg = detail::make_arg<scan_context>(value);
8936
30.9k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
29.0k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
30.9k
}
_ZN3scn2v310scan_valueIyNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
26.3k
{
8934
26.3k
    T value;
8935
26.3k
    auto arg = detail::make_arg<scan_context>(value);
8936
26.3k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
24.4k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
26.3k
}
_ZN3scn2v310scan_valueIaNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
26.2k
{
8934
26.2k
    T value;
8935
26.2k
    auto arg = detail::make_arg<scan_context>(value);
8936
26.2k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
24.2k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
26.2k
}
_ZN3scn2v310scan_valueIhNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
23.2k
{
8934
23.2k
    T value;
8935
23.2k
    auto arg = detail::make_arg<scan_context>(value);
8936
23.2k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
21.3k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
23.2k
}
_ZN3scn2v310scan_valueIiNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
29.8k
{
8934
29.8k
    T value;
8935
29.8k
    auto arg = detail::make_arg<scan_context>(value);
8936
29.8k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
27.8k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
29.8k
}
_ZN3scn2v310scan_valueIjNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
25.9k
{
8934
25.9k
    T value;
8935
25.9k
    auto arg = detail::make_arg<scan_context>(value);
8936
25.9k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
24.0k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
25.9k
}
_ZN3scn2v310scan_valueIxNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
30.3k
{
8934
30.3k
    T value;
8935
30.3k
    auto arg = detail::make_arg<scan_context>(value);
8936
30.3k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
28.4k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
30.3k
}
_ZN3scn2v310scan_valueIyNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
26.2k
{
8934
26.2k
    T value;
8935
26.2k
    auto arg = detail::make_arg<scan_context>(value);
8936
26.2k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
24.3k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
26.2k
}
_ZN3scn2v310scan_valueINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS0_6ranges6detail9subrange_8subrangeIPKcSE_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJT_EEEEEOSJ_
Line
Count
Source
8933
30.2k
{
8934
30.2k
    T value;
8935
30.2k
    auto arg = detail::make_arg<scan_context>(value);
8936
30.2k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
29.5k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
30.2k
}
_ZN3scn2v310scan_valueINSt3__117basic_string_viewIcNS2_11char_traitsIcEEEENS0_6ranges6detail9subrange_8subrangeIPKcSC_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEJT_EEEEEOSH_
Line
Count
Source
8933
30.2k
{
8934
30.2k
    T value;
8935
30.2k
    auto arg = detail::make_arg<scan_context>(value);
8936
30.2k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
29.5k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
30.2k
}
_ZN3scn2v310scan_valueINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRSE_PKSF_lLl4096EEESJ_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESS_NS0_6detail22borrowed_tail_subrangeISO_Xsr6rangesE14borrowed_rangeISO_EEE4typeEE4typeEJT_EEEEEOSO_
Line
Count
Source
8933
30.6k
{
8934
30.6k
    T value;
8935
30.6k
    auto arg = detail::make_arg<scan_context>(value);
8936
30.6k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
29.9k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
30.6k
}
_ZN3scn2v310scan_valueIfNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
68.0k
{
8934
68.0k
    T value;
8935
68.0k
    auto arg = detail::make_arg<scan_context>(value);
8936
68.0k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
65.3k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
68.0k
}
_ZN3scn2v310scan_valueIdNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
75.3k
{
8934
75.3k
    T value;
8935
75.3k
    auto arg = detail::make_arg<scan_context>(value);
8936
75.3k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
72.6k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
75.3k
}
_ZN3scn2v310scan_valueIeNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEvEENS0_13scan_expectedINS0_11scan_resultINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJT_EEEEEOSD_
Line
Count
Source
8933
76.8k
{
8934
76.8k
    T value;
8935
76.8k
    auto arg = detail::make_arg<scan_context>(value);
8936
76.8k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
74.1k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
76.8k
}
_ZN3scn2v310scan_valueIfNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
62.9k
{
8934
62.9k
    T value;
8935
62.9k
    auto arg = detail::make_arg<scan_context>(value);
8936
62.9k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
60.2k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
62.9k
}
_ZN3scn2v310scan_valueIdNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
70.0k
{
8934
70.0k
    T value;
8935
70.0k
    auto arg = detail::make_arg<scan_context>(value);
8936
70.0k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
67.2k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
70.0k
}
_ZN3scn2v310scan_valueIeNS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEvEENS0_13scan_expectedINS0_11scan_resultINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJT_EEEEEOSI_
Line
Count
Source
8933
71.0k
{
8934
71.0k
    T value;
8935
71.0k
    auto arg = detail::make_arg<scan_context>(value);
8936
71.0k
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8937
68.2k
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(value)}};
8938
71.0k
}
8939
8940
/**
8941
 * `scan` a single value, with default options, and a default value.
8942
 *
8943
 * \ingroup scan
8944
 */
8945
template <typename T,
8946
          typename Source,
8947
          std::enable_if_t<detail::is_file_or_narrow_range<Source>>* = nullptr>
8948
SCN_NODISCARD auto scan_value(Source&& source, T initial_value)
8949
    -> scan_result_type<Source, T>
8950
{
8951
    auto arg = detail::make_arg<scan_context>(initial_value);
8952
    SCN_TRY(it, vscan_value(SCN_FWD(source), arg));
8953
    return scan_result{SCN_MOVE(it), std::tuple{SCN_MOVE(initial_value)}};
8954
}
8955
8956
/**
8957
 * Scan from `stdin`.
8958
 *
8959
 * Equivalent to `scn::scan<...>(stdin, ...)`.
8960
 *
8961
 * \code{.cpp}
8962
 * auto result = scn::input<int>("{}");
8963
 * \endcode
8964
 *
8965
 * \ingroup scan
8966
 */
8967
template <typename... Args>
8968
SCN_NODISCARD auto input(scan_format_string<std::FILE*, Args...> format)
8969
    -> scan_result_type<std::FILE*, Args...>
8970
{
8971
    auto args = make_scan_args<scan_context, Args...>();
8972
    auto err = vinput(format, args);
8973
    if (SCN_UNLIKELY(!err)) {
8974
        return unexpected(err);
8975
    }
8976
    return scan_result{stdin, SCN_MOVE(args.args())};
8977
}
8978
8979
/**
8980
 * Write msg to stdout, and call `input<Args...>(format)`
8981
 *
8982
 * \ingroup scan
8983
 */
8984
template <typename... Args>
8985
SCN_NODISCARD auto prompt(const char* msg,
8986
                          scan_format_string<std::FILE*, Args...> format)
8987
    -> scan_result_type<std::FILE*, Args...>
8988
{
8989
    std::printf("%s", msg);
8990
    std::fflush(stdout);
8991
    return input<Args...>(format);
8992
}
8993
8994
namespace detail {
8995
template <typename T>
8996
inline constexpr bool is_scan_int_type =
8997
    std::is_integral_v<T> && !std::is_same_v<T, char> &&
8998
    !std::is_same_v<T, wchar_t> && !std::is_same_v<T, char32_t> &&
8999
    !std::is_same_v<T, bool>;
9000
}
9001
9002
/**
9003
 * Fast integer reading.
9004
 *
9005
 * Quickly reads an integer from a `std::string_view`. Skips preceding
9006
 * whitespace.
9007
 *
9008
 * Reads in the specified base,
9009
 * allowing a base prefix. Set `base` to `0` to detect the base from the
9010
 * input. `base` must either be `0`, or in range `[2, 36]`.
9011
 *
9012
 * \ingroup scan
9013
 */
9014
template <typename T, std::enable_if_t<detail::is_scan_int_type<T>>* = nullptr>
9015
SCN_NODISCARD auto scan_int(std::string_view source, int base = 10)
9016
    -> scan_result_type<std::string_view, T>
9017
{
9018
    T value{};
9019
    SCN_TRY(it, detail::scan_int_impl(source, value, base));
9020
    return scan_result{ranges::subrange{it, source.end()}, std::tuple{value}};
9021
}
9022
9023
namespace detail {
9024
template <bool Val, typename T>
9025
inline constexpr bool dependent_bool = Val;
9026
}
9027
9028
/**
9029
 * Very fast integer reading.
9030
 *
9031
 * Quickly reads an integer from a `std::string_view`.
9032
 *
9033
 * Be very careful when using this one!
9034
 * Its speed comes from some very heavy assumptions about the validity of
9035
 * the input:
9036
 *  - `source` must not be empty.
9037
 *  - `source` contains nothing but the integer: no leading or trailing
9038
 *    whitespace, no extra junk. Leading `-` is allowed for signed types,
9039
 *    no `+` is allowed.
9040
 *  - The parsed value does not overflow.
9041
 *  - The input is a valid base-10 integer.
9042
 * Breaking these assumptions will lead to UB.
9043
 *
9044
 * \ingroup scan
9045
 */
9046
template <typename T, std::enable_if_t<detail::is_scan_int_type<T>>* = nullptr>
9047
SCN_NODISCARD auto scan_int_exhaustive_valid(std::string_view source) -> T
9048
{
9049
    static_assert(
9050
        detail::dependent_bool<!SCN_IS_BIG_ENDIAN, T>,
9051
        "scan_int_exhaustive_valid requires a little endian environment");
9052
    return detail::scan_int_exhaustive_valid_impl<T>(source);
9053
}
9054
9055
SCN_END_NAMESPACE
9056
}  // namespace scn